4

我正在尝试打印整个单词,而不仅仅是第一个字母。我可以用循环来做到这一点,但我认为有更好的方法。我四处寻找,看到他们将 %S 更改为 %c 的答案,但我已经在使用 %c 了,因为它是一个字符数组。

char* words[] = {"my", "word", "list"};
printf("The word: %c",*words[2]);

Results:
The word: l
4

2 回答 2

8

问题是您取消引用了两次。*words[2] 中的 [2] 从 words[] 取消引用到 "list" 然后 * 再次从 "list" 取消引用到 'l' 删除 * 和瞧。

char* words[] = {"my", "word", "list"};
printf("The word: %s", words[2]);
于 2012-11-08T20:54:43.413 回答
4

您需要使用%s,一种专门用于以空字符结尾的字符数组(即 C 字符串)的格式。将数组的元素传递给 时,您不会取消引用它printf,如下所示:

printf("The word: %s\n", words[2]);
于 2012-11-08T20:52:29.150 回答