Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Char型と文字列 | データ型と変数
C基礎

bookChar型と文字列

メニューを表示するにはスワイプしてください

C言語には文字列(テキスト)専用のデータ型はありません。その代わり、テキストは**char型の配列として保存され、各要素が1文字**を保持します。たとえば、テキストc<>definityは、このような配列に文字の並びとして格納されます。

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

テキスト"c<>definity"11文字ですが、配列には12要素あります。この余分な1要素は、ヌル終端子\0を格納するためのもので、C言語における文字列の終わりを示します。

これは数字のゼロではなく、特別な非表示文字(ASCIIコード0)であり、プログラムに文字列の終了位置を伝えます。

Note
注意

この終端子を格納するため、文字配列は必ずテキストより1要素多く確保する必要があります。

'x'"x"同じものではないことを認識することが重要です。

文字列は複数の文字で構成されています。文字列の末尾には必ず\0文字を付加する必要があります。

  • 'x'は単なるchar型の文字定数
  • "x"は文字列、つまりchar型の値の配列であり、この場合は**{'x', '\0'}**となります。
Note
注意

'\0'」、「'0'」、「"0"」を混同しないようにしてください。 '\0'ヌル文字(ASCII 0)、'0'数字のゼロ(ASCII 48)、"0"数字のゼロと終端子\0を含む文字列です。

文字列の出力

C言語では、文字列(char型の配列)を表示する場合、%s指定子を使用します。この指定子は、printf()関数にどの種類の情報を受け取るべきかを指示します。%sを使うことで、printf()関数に文字列が渡されることを知らせます。

main.c

main.c

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

C言語には、標準の文字列操作用ライブラリ <string.h> があります。このライブラリには、文字列内の文字数を数える関数が含まれています。

main.c

main.c

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
注意

スペースも文字であることに注意し、それぞれ配列内に独自の場所が必要です。例えば: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

インデックスを使用することで、文字列の要素にアクセス可能。文字列は本質的にchar配列であるため、インデックスを通じて個々の文字の変更も可能。

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

次のうち、C言語で文字列を正しく宣言しているものはどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  6
some-alt