「文字の配列」の編集履歴(バックアップ)一覧はこちら

文字の配列」(2019/05/15 (水) 18:41:54) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**文字の配列 配列を作るれるのは int型だけではありません。 double型 や char型の配列も作ることができます。 double型 の配列は int型とほとんど変わらないので、char型の配列について説明します。 char型 は半角英数の文字を入れることができる変数です。それが配列になると「文字列」を入れることができます。 「文字」と「文字列」では扱いに違いがあります。 char cha; char str[5]; cha = 'A'; //1文字しか入らない str[0] = 'A'; str[1] = 'B'; str[2] = 'C'; str[3] = 'D'; str[4] = '\0'; //最後には必ず \0 を入れる printf("%c\n",cha); //1文字だけなら %c printf("%s\n",str); //文字列は %s 文字列の最後には必ず \0 を入れなくてはいけません。 これは NULLcharacter、ヌル文字などと呼ばれています。 この \0 に配列の要素を1つ使うため、 4文字入れたい場合は要素数が5以上の配列を、100文字入れたい場合は要素数が101以上の配列を用意しなくてはいけません。 **文字列の初期化 文字列もほかの配列と同じように初期化できます。 char str[5] = {'A','B','C','D','\0'}; printf("%s\n",str); [ ] の中に何も書かず初期化すれば、自動的に必要な要素数を確保してくれます。 char str[] = {'A','B','C','D','\0'}; printf("%s\n",str); ' ' ではなく " " を使うことで、,(カンマ)を入れる必要もなく、\0 も自動的に入れてくれます。 char str[5] = {"ABCD"}; printf("%s\n",str); さらに [ ] の中を書かないことで要素数を自動で確保してくれます。 char str[] = {"ABCD"}; printf("%s\n",str); **文字列入力 ユーザーからの文字列入力を受け付けるには scanf_s をつかいます。 char str[255]; printf("英数で254文字以内の文字列を入力してください。\n"); scanf_s("%s",str,255); // & は付けない printf("%sが入力されました。\n",str); ユーザーの入力する文字列の長さがわからないため、要素数は多めに宣言します。 文字列の入力を求めるとき、scan_f("%s", str, 255) のように文字数の制限が必要です。例の場合 255-1 文字まで打てます。超えてしまうと何も表示されません。 **文字列の操作 文字列の最後には \0 を入れる決まりになっています。 つまり、最後には必ず \0 が入っているのです。 それを利用すると次のようなことができます。 char str[255]; printf("文字列を入力してください。\n"); scanf_s("%s",str,255); int i = 0; while(str[i] != '\0'){ printf("%c",str[i]); i++; } これは文字列の中の文字を一つ一つ表示しています。 scanf_s で文字列を受け付けるときは %s を使いますが、& は付けないので注意してください。 **二次元配列 二次元配列を使うことで複数の文字列をループの中で扱えます。 char str[3][255]; printf("文字列を3つ入力してください。\n"); for(int i = 0; i < 3; i++){ scanf_s("%s",str[i]); } printf("入力された文字列は\n"); for(int i = 0; i < 3; i++){ printf("%d番目が%s\n",i,str[i]); } printf("です。\n"); **練習問題 次のようなプログラムを作ってください。 第1問 ユーザーから実数値を5個入力してもらい、降順で並べて、小数点以下第2位まで表示。 第2問 ユーザーに整数値を10個入力してもらい、平均より大きいものだけ選んで表示。 第3問 ユーザーに文字列を入力してもらい、文字列の中に A の文字があったら B に変えて表示。
**文字の配列 配列を作るれるのは int型だけではありません。 double型 や char型の配列も作ることができます。 double型 の配列は int型とほとんど変わらないので、char型の配列について説明します。 char型 は半角英数の文字を入れることができる変数です。それが配列になると「文字列」を入れることができます。 「文字」と「文字列」では扱いに違いがあります。 char cha; char str[5]; cha = 'A'; //1文字しか入らない str[0] = 'A'; str[1] = 'B'; str[2] = 'C'; str[3] = 'D'; str[4] = '\0'; //最後には必ず \0 を入れる printf("%c\n",cha); //1文字だけなら %c printf("%s\n",str); //文字列は %s 文字列の最後には必ず \0 を入れなくてはいけません。 これは NULLcharacter、ヌル文字などと呼ばれています。 この \0 に配列の要素を1つ使うため、 4文字入れたい場合は要素数が5以上の配列を、100文字入れたい場合は要素数が101以上の配列を用意しなくてはいけません。 **文字列の初期化 文字列もほかの配列と同じように初期化できます。 char str[5] = {'A','B','C','D','\0'}; printf("%s\n",str); [ ] の中に何も書かず初期化すれば、自動的に必要な要素数を確保してくれます。 char str[] = {'A','B','C','D','\0'}; printf("%s\n",str); ' ' ではなく " " を使うことで、,(カンマ)を入れる必要もなく、\0 も自動的に入れてくれます。 char str[5] = {"ABCD"}; printf("%s\n",str); さらに [ ] の中を書かないことで要素数を自動で確保してくれます。 char str[] = {"ABCD"}; printf("%s\n",str); **文字列入力 ユーザーからの文字列入力を受け付けるには scanf_s をつかいます。 char str[255]; printf("英数で254文字以内の文字列を入力してください。\n"); scanf_s("%s",str,255); // & は付けない printf("%sが入力されました。\n",str); ユーザーの入力する文字列の長さがわからないため、要素数は多めに宣言します。 文字列の入力を求めるとき、scan_f("%s", str, 255) のように文字数の制限が必要です。例の場合 255-1 文字まで打てます。超えてしまうと何も表示されません。 **文字列の操作 文字列の最後には \0 を入れる決まりになっています。 つまり、最後には必ず \0 が入っているのです。 それを利用すると次のようなことができます。 char str[255]; printf("文字列を入力してください。\n"); scanf_s("%s",str,255); int i = 0; while(str[i] != '\0'){ printf("%c",str[i]); i++; } これは文字列の中の文字を一つ一つ表示しています。 scanf_s で文字列を受け付けるときは %s を使いますが、& は付けないので注意してください。 **二次元配列 二次元配列を使うことで複数の文字列をループの中で扱えます。 char str[3][255]; printf("文字列を3つ入力してください。\n"); for(int i = 0; i < 3; i++){ scanf_s("%s",str[i],255); } printf("入力された文字列は\n"); for(int i = 0; i < 3; i++){ printf("%d番目が%s\n",i,str[i]); } printf("です。\n"); **練習問題 次のようなプログラムを作ってください。 第1問 ユーザーから実数値を5個入力してもらい、降順で並べて、小数点以下第2位まで表示。 第2問 ユーザーに整数値を10個入力してもらい、平均より大きいものだけ選んで表示。 第3問 ユーザーに文字列を入力してもらい、文字列の中に A の文字があったら B に変えて表示。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー