<分区>
我正在写入一个字符数组,但是当我打印时,我得到了 2 个不同的输出。我知道这是很多代码,但如果可以的话 - 请试着找出为什么我每次都得到不同的输出...第一个代码:
int len = strlen(oldStr);
int i = 0;
char c;
while (i < len - 1)
{
c = *(oldStr + i);
if (isSpace(c)) {
c = *(oldStr + i + 1);
if (!isSpace(c)) {
*(newStr + i) = '\0';
printf(" ");
}
} else {
*(newStr + i) = c;
printf("%c", *(newStr + i));
}
i++;
}
*(newStr + i) = '\0';
*(newStr + i + 1) = '\0';
当我在此处打印时,它会按应有的方式打印整个字符串列表。
但是,当我用它来打印时:
for (i = 0; !(*(newStr + i) == '\0' && *(newStr + i + 1) == '\0'); i++) {
if (*(newStr + i) == '\0')
printf(" ");
else
printf("%c", *(newStr + i));
}
它只打印部分字符串。
例如:“一二三四\n\t五六”
第一个代码打印“一二三四五六”
第二个代码打印“一二三”
为什么?