1
私はchar配列に書き込んでいますが、印刷すると2つの異なる出力が得られます。私は、これは多くのコードですけど、次のことができた場合 - 私は別の出力を毎回取得していますなぜ多分キャッチしてみてください...まずコード: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));
}
それだけで文字列の一部を印刷します。例えば
:"One two three four\n\tfive six"
最初のコード印刷"One two three four five six"
第2のコード印刷"One two three"
なぜ?
あなたが見ている出力を生成するプログラムを作成するために、あなたが提供したコードを見ている人が、そのコードをどのようにしなければならないのでしょうか? – jxh
'* newStr'はどこで宣言しましたか? – opisthofulax
それは私にパラメータとして与えられました –