如何打印字符串的字符值?

时间:2013-01-27 20:18:24

标签: c

我试图以这种格式打印字符串中每个字符的值:

  

集合0中的代码2具有值:41 42

     

集合0中的代码6具有值:41 42 43 44 45 46

我试图通过以下方式做到这一点:

printf("Code %d in set %d has value: %.*s\n", ndx, set, getCode(cs[set],ndx).size, getCode(cs[set],ndx).data);

但是当我这样做时,它会打印与值相关的字符而不是值本身。我该如何以指定的格式打印数据?

2 个答案:

答案 0 :(得分:0)

您将数组打印为字符串。而是循环遍历每个字符并打印其十进制值:

int i;
printf("Code %d in set %d has value: ", ndx, set);
for (i = 0; i < getCode(cs[set],ndx).size ; i++) {
  printf("%d ", getCode(cs[set],ndx).data[i]);
}
puts(""); //print a newline

答案 1 :(得分:0)

使用%d说明符:

char str[] = "Hello";
printf("%d\n", str[0]);  // Displays 72
printf("%d\n", str[1]);  // Displays 101