从函数返回字符串 [字符指针]

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)

Riz*_*123 5

这应该适合你:

您可以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)