迭代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; }