迭代char数组和打印字符

我试图在变量中打印每个char。

我可以通过更改为printf("Value: %d\n", d[i]);打印ANSI字符编号printf("Value: %d\n", d[i]); 但我没有真正打印字符串字符本身。

我在这做错了什么?

 #include  #include  #include  int main(int argc, char *argv[]) { int len = strlen(argv[1]); char *d = malloc (strlen(argv[1])+1); strcpy(d,argv[1]); int i; for(i=0;i<len;i++){ printf("Value: %s\n", (char)d[i]); } return 0; } 

您应该使用%c格式来打印C中的字符。您正在使用%s ,这需要使用指向字符串的指针,但在您的情况下,您提供的是整数而不是指针。

以下将有效。 在printf中使用标记%s时,将指针传递给字符串。

 #include  #include  #include  int main(int argc, char *argv[]) { int len = strlen(argv[1]); char *d = malloc (strlen(argv[1])+1); strcpy(d,argv[1]); printf("Value: %s\n", d); return 0; }