【发布时间】:2020-01-08 17:48:25
【问题描述】:
我希望函数lch()返回一个可以在函数外使用的字符串。
这是我写的代码,但它似乎不起作用:
char *lch(char *ch,int n){
char c[n];
for(int i=0;i<n;i++){
c[i] = *ch;
}
puts(c); // check output string inside function
return c;
}
char str[100],*p;
main(){
p = lch("a",20);
puts(p); // check output outside function
}
我对字符串以及如何将它们传递给函数感到困惑。
我希望输出字符串在两次调用 puts() 时都相同。
我该怎么办?
就是上面代码的结果:
aaaaaaaaaaaaaaaaaaaa // inside the function
¢ÞêÊ· // outside the function
【问题讨论】:
-
这里有几个问题,它们都是许多现有问题的重复。您可能想研究为什么 1) 返回一个本地定义的数组,2) 不要用
'\0'字符终止您的字符串。 -
请注意,这不会作为重复关闭以阻止您;重复的链接旨在回答您的问题。如果重复问题的答案不能回答您的问题,请编辑您的问题,它可能会重新打开。