【发布时间】:2017-01-08 18:32:16
【问题描述】:
我创建了一个字符串列表并使用以下代码打印它:
int i;
char* p = "My\0name\0is\0\0";
for (i = 0; *(p + i) != '\0' && *(p + i + 1) != '\0'; i++)
{
if (*(p + i) == '\0')
printf(" ");
else
printf("%c", *(p + i));
}
为什么只打印M,没有字符串的其余部分?
【问题讨论】:
-
要么你的字符串是空(零)终止的(然后你不能在里面有空字符)要么你知道它的长度。
-
如果您以前从未使用过调试器,那么现在是学习它的最佳时机。使用调试器,您可以逐行执行代码,同时监视变量及其值。能够使用调试器对于任何想做任何类型编程的人来说都是一项至关重要的技能,即使是作为一种爱好。
标签: c for-loop logical-operators