这目前工作正常,但在我的主要功能
中while((strcmp(country, "Australia")) && (strcmp(country, "Japan")))
{
printf("Please select only Australia or Japan");
scanf("%s", &country);
case_change(country); // function to lowercase any uppercaseletter //
}
如何将其置于单独的功能中。 (基本上是另一个.c文件)? 我尝试过做这样的事情,但它不断给出分段错误。
我还希望它一直重复,直到输入正确的输入
int main()
{
printf("Please select only Australia or Japan");
scanf("%s", &country);
char * selection = testing_function(country);
printf("The country you have selected is %s", selection);
}
int testing_function(char * country)
{
while((strcmp(country, "Australia")) && (strcmp(country, "Japan")))
{
printf("Please select only Australia or Japan");
scanf("%s", &country);
case_change(country); // function to lowercase any uppercaseletter //
}
return(country);
}
PS:我还没有完成“国家”的情况。所以我想把它作为一个字符串,如果这是有意义的。
答案 0 :(得分:2)
您的代码有几个问题:
testing_function
- 当你的原型返回int country
导致段错误之前,没有country
的分配。在将testing_function
传递给scanf
&country
已正确分配
%s
函数错误,因为您传入指向char(country
)的指针而不是指向char的指针,正如控制字符串testing_function
void testing_function(char * country)
{
while((strcmp(country, "Australia")) && (strcmp(country, "Japan")))
{
printf("Please select only Australia or Japan");
scanf("%s", country);
}
}
int main()
{
char country[1000] = "";
testing_function(country);
printf("The country you have selected is %s", country);
}
作为char指针传入,并在{{1}} 大概这会起作用:
{{1}}