noc*_*rne 2 c string return fgetc
我正在编写一个从标准输入返回一个字符串的程序,但我收到警告,它返回一个本地 wariable 的地址。我怎样才能返回字符串?
提前致谢
#include <stdio.h>
char* readLine()
{
int i;
char input[1024];
for(i=0;i<1024;i++)
{
input[i]=fgetc(stdin);
if(input[i]=='\n')
{
break;
}
}
return input;
}
int main()
{
printf("%s",readLine());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这应该适合你:
您可以input从 main 作为参考传递:
#include <stdio.h>
char * readLine(char * input, int length) {
int i;
for(i = 0; i < length; i++) {
input[i] = fgetc(stdin);
input[length] = '\0';
if(input[i] == '\n')
break;
}
return input;
}
int main() {
int length = 1024;
char input[length+1];
printf("%s", readLine(input, length));
return 0;
}
Run Code Online (Sandbox Code Playgroud)