遍历char数组并打印char

shstlldc  于 2023-03-22  发布在  其他
关注(0)|答案(2)|浏览(164)

我正在尝试打印变量中的每个字符。
我可以通过更改为printf("Value: %d\n", d[i]);来打印ANSI字符数,但实际上无法打印字符串字符本身。
我做错了什么?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

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;
}
ttcibm8c

ttcibm8c1#

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

igsr9ssn

igsr9ssn2#

下面的方法将起作用。当在printf中使用标记%s时,您将传入指向字符串的指针。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

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

相关问题