【发布时间】:2019-10-22 14:04:54
【问题描述】:
我需要打印一个字符串数组的元素,每个元素由一个字符组成。通常可以使用一维字符数组,但在我的情况下,我需要使用字符串来存储这些。
我尝试了相同的代码,每个元素都比一个字符长,它似乎可以工作,但是对于单数字符我无法弄清楚。
void hands(){
char suits[4][1] = {"A", "K", "Q", "J"};
printf("%s", suits[0]);
}
我希望输出“A”,而不是“AKQJ {;W?”
【问题讨论】:
-
尝试
suits[4][2]也为空终止符腾出空间。 “通常可以使用一维字符数组,但在我的情况下,我需要使用字符串来存储这些”来自您发布的 sn-p,目前尚不清楚为什么char不会'做这项工作。你所做的就是打印它们,你也可以用字符来做。目前,您的(固定)代码相当于int main(){printf("A");}。 -
这是以 NUL 结尾的字符串。第二个数组维度必须至少为 2。
-
它们不会是以 NUL 结尾的字符串,
NUL没有空间。由于数组的元素是连续的,printf遍历它们而没有找到NUL,但最终在其他地方找到了一个。 -
@Cid 我认为这将是重复的,但 Vlad 现在发布了一个很好的答案。 :)
-
@Lundin 建议的副本与问题根本不匹配。