Menu
Coddy logo textTech

Cスタイル文字列 パート1

CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 67/74。

Cスタイルの文字列は、stringの代わりにchar型を使用して作成されます。これらは、ヌル文字('\0')と呼ばれる特殊な文字で終わります。

この文字は文字列の終端を表します。C言語スタイルの文字列は、しばしば「ヌル終端文字列」と呼ばれます。

例えば、シンプルな宣言は次のようになります:

char str1[] = "Hello";

str1 は、特定のサイズを指定せずに宣言されています。コンパイラは、初期化子(ヌル文字を含む)に基づいて自動的にサイズを決定します。

文字で明示的に初期化する例:

char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};

str2 はサイズ6で宣言され、末尾のヌル文字を含めて文字で明示的に初期化されています。

一部のみ初期化された例:

char str3[10] = "Coddy";

str3 はサイズ10で宣言されていますが、最初の6文字のみが初期化されています。配列の残りの部分はヌル文字で埋められます。

C言語スタイルの文字列を使用するには、次をインクルードする必要があります:

#include <cstring>

インクルードの後、strlen関数を使用してCスタイルの文字列の長さを取得できます:

std::cout << strlen(str1); // 出力: 5
challenge icon

チャレンジ

簡単

C言語形式の文字列を引数として受け取り、以下の処理を行う printStringInfo という名前の関数を作成してください:

  1. String:  に続けて、元の文字列を表示する。
  2. Length:  に続けて、strlen(str) の結果を表示する。
  3. Character at index 4:  に続けて、その位置にある文字を表示する。
  4. Modified string:  に続けて、最初の文字を X に変更した後の文字列を表示する。

チートシート

Cスタイルの文字列は、char型で作成され、ヌル文字'\0'で終わります。これらはヌル終端文字列です。

特定のサイズを指定しない宣言(コンパイラがサイズを決定します):

char str1[] = "Hello";

文字による明示的な初期化:

char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};

部分的な初期化(残りはヌル文字で埋められます):

char str3[10] = "Coddy";

Cスタイルの文字列関数を使用するには、以下をインクルードします:

#include <cstring>

strlen()を使用して文字列の長さを取得します:

std::cout << strlen(str1); // 出力: 5

自分で試してみよう

#include <iostream>
#include <cstring>

void printStringInfo(char str[]) {
    // 文字列を出力する
    

    // 文字列の長さを出力する
    

    // インデックス4の文字を出力する
    

    // 最初の文字を 'X' に変更する
    

    // 変更された文字列を出力する
    
}

int main() {
    char message[] = "Hello, World!";

    printStringInfo(message);

    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン