如何在C中打印出字符串的单个字符

时间:2014-04-22 05:27:36

标签: c string loops printf

我对此有点困惑

char *string;

scanf("%s",string); 

int i=strlen(string);
int k = 0;

while(k<i){    
      printf("%c", string[k]);
      k++;    
  }

当我编译它时,它什么都没打印出来。

1 个答案:

答案 0 :(得分:2)

scanf("%s",string); 

string是一个指针。你需要为它分配内存,以便它可以使用scanf保持输入读取。

char *string;

此语句只是创建一个指向字符数组的指针,但不分配内存来保存数组 您需要使用动态分配显式分配内存。你可以使用malloc之类的函数。阅读this

或者你可以声明一个数组而不是指针,

char string[SIZE];

SIZE是字符串的最大可能大小 您可以使用getline而不是scanf,因为如果传递NULL指针,getline会分配内存。