Cスタイル文字列 パート2
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 68/74。
特定のサイズでC言語スタイルの文字列を宣言する場合、格納したい文字に加えて、ヌル文字(null character)用にもう1つ分のスペースを確保する必要があることを覚えておくことが重要です。
例えば:
// 正しい例:"Hello" には6文字分のスペースが必要です
// (5文字 + '\0')
char str1[6] = "Hello";// 誤り:配列が小さすぎます!
// "Hello" には6つのスペースが必要ですが、5つしか指定されていません
char str2[5] = "Hello";
// エラー:コンパイルされません - 6文字('H','e','l','l','o','\0')に対して5つのスロットしかありません// 正解:余分なスペースがあっても問題ありません
// 十分なスペースがあります(10 > 6 必要)
char str3[10] = "Hello";// 文字数を示す例:
char name[5] = "John"; // 5つのスペースが必要です:
// J + o + h + n + '\0' = 5文字Cスタイルの文字列内の個々の文字には、配列記法を使用してアクセスできます:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'配列の境界を超えない限り、Cスタイルの文字列内の文字を変更することもできます:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // "Jello" を出力しますしかし、C言語スタイルの文字列を宣言した後に、新しい文字列を直接代入することはできません。文字列をコピーするには、strcpyのような関数を使用する必要があります。これについては、後のレッスンで詳しく説明します。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。