这目前工作正常,但在我的主要功能
中while((strcmp(user_day, "Australia")) && (strcmp(user_day, "Japan")))
{
printf("Please select only Australia or Japan");
scanf("%s", &country);
case_change(country); // function to lowercase any uppercaseletter //
}
如何将其置于单独的功能中。 (基本上是另一个.c文件)? 我尝试过做这样的事情,但它不断给出分段错误。
int main()
{
scanf("%s", &country);
testing_function(country);
}
int testing_function(char * country)
{
while((strcmp(user_day, "Australia")) && (strcmp(user_day, "Japan")))
{
printf("Please select only Australia or Japan");
scanf("%s", &country);
case_change(country);
}
return(country);
}
PS:我还没有完成" country"所发生的事情。所以我想把它作为一个字符串,如果这是有意义的。
答案 0 :(得分:2)
无论country
是数组还是指针,执行
scanf("%s", &country);
错了。
如果country
是一个数组,那么它将为您提供指向数组的指针,它将是char (*)[SOME_SIZE]
类型。如果country
是一个指针(它在你的函数中),那么&country
是一个指针到指针,它将具有类型char **
。两者都不是正确的类型,因为"%s"
格式需要指向char
的{{1}}类型的指针。
简单的解决方案,也许是解决崩溃的方法,就是不使用address-of运算符。只需做
char *
虽然有一些其他可能的原因导致崩溃,但由于您没有向我们展示Minimal, Complete, and Verifiable Example,因此很难说出更具体的内容。
答案 1 :(得分:1)
问题是while循环,因为它是无限循环
使用sed 's/\S*\s*//' infile
代替
if
在functino&中使用相同的变量main将使用相同的地址
P.S如果你想使用变量的指针传递地址,那么在函数
中使用指针