我在这里有点困惑
char *string;
scanf("%s",string);
int i=strlen(string);
int k = 0;
while(k<i){
printf("%c", string[k]);
k++;
}
当我编译它时,它什么也没有打印出来。
最佳答案
scanf("%s",string);
string
是一个指针。您需要为其分配内存,以便它可以保存使用 scanf
读取的输入。
char *string;
这个语句只是创建一个指向字符数组的指针,但没有分配内存来保存数组。
您需要使用动态分配显式分配内存。您可以使用 malloc
之类的函数。阅读 this
或者你可以声明一个数组而不是指针,
char string[SIZE];
SIZE 是字符串的最大可能大小。
你甚至可以使用 getline而不是 scanf
,因为如果传递 NULL 指针,getline
会分配内存。
关于c - 如何在C中打印出字符串的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23211067/