gpt4 book ai didi

c - 如何将此代码放在主函数之外?

转载 作者:行者123 更新时间:2023-11-30 18:34:45 25 4
gpt4 key购买 nike

这目前工作正常,但在我的主要功能内

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是数组还是指针,都在做

scanf("%s", &country);

错误。

如果country是一个数组,它将为您提供一个指向该数组的指针,并且它将是char (*)[SOME_SIZE]类型。如果 country 是一个指针(它位于您的函数中),则 &country 是一个指向该指针的指针,并且类型为 char **。这两种类型都不是正确的类型,因为 "%s" 格式需要一个指向 char * 类型的 char 指针。

简单的解决方案,也许可以解决您的崩溃问题,就是不使用地址运算符。简单地做

scanf("%s", country);  // Note, no address-of operator
<小时/>

虽然还有其他一些可能导致崩溃的原因,但很难说任何更具体的原因,因为您没有向我们展示 Minimal, Complete, and Verifiable Example .

关于c - 如何将此代码放在主函数之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50541235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com