标签: c string loops printf
我对此有点困惑
char *string; scanf("%s",string); int i=strlen(string); int k = 0; while(k<i){ printf("%c", string[k]); k++; }
当我编译它时,它什么都没打印出来。
答案 0 :(得分:2)
scanf("%s",string);
string是一个指针。你需要为它分配内存,以便它可以使用scanf保持输入读取。
string
scanf
char *string;
此语句只是创建一个指向字符数组的指针,但不分配内存来保存数组 您需要使用动态分配显式分配内存。你可以使用malloc之类的函数。阅读this
malloc
或者你可以声明一个数组而不是指针,
char string[SIZE];
SIZE是字符串的最大可能大小 您可以使用getline而不是scanf,因为如果传递NULL指针,getline会分配内存。
getline