0

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

集合 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);

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

4

2 回答 2

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
于 2013-01-27T20:25:39.687 回答
0

使用说明%d符:

char str[] = "Hello";
printf("%d\n", str[0]);  // Displays 72
printf("%d\n", str[1]);  // Displays 101
于 2013-01-27T20:26:04.863 回答