私は文字列を使用します:
char word[100];
0 から始まる各位置にいくつかの文字を追加します。ただし、0 から始まる新しい文字の追加を開始できるように、これらの位置をすべてクリアできる必要があります。
そうしないと、2番目の文字列が短くなると、最初の文字列を上書きしないため、2番目の文字列を追加するときに最初の文字列から余分な文字ができてしまいます。
配列全体をゼロにしたい場合は、次のことができます。
memset(word, 0, sizeof(word));
C スタイルのゼロ終了文字列を使用している場合は、それらをクリアする必要はありません。文字列の最後の文字の後の要素を NUL ('\0') に設定するだけで済みます。
例えば、
char buffer[30] = { 'H', 'i', ' ', 'T', 'h', 'e', 'r', 'e', 0 }; // または、同様に: // char buffer[30] = "こんにちは"; // ここではどちらの例も機能します。 printf("%s", バッファ); バッファ[2] = '\0'; printf("%s", バッファ)
出力します
こんにちは
こんにちは
それはまだ真実ですがbuffer[3] == 'T'
。
strcpy(word,"")
この目的にも使用できます。
char
配列の最初の位置に null ターミネータを割り当てることができます。
*word = '\0';