もっと簡単にchar型の配列に文字列データ"neko"を格納(配列の初期化)してみる
もっと簡単にchar型の配列に文字列データ"neko"を格納(配列の初期化)してみる
ソーラー
「配列に文字列データも格納できるようになったんだ。
やったね💖」
アレサ「大進歩です。ソーラーさん」
ソーラー
「さらに
文字列データを配列に取り込む(配列の初期化)にはもっと簡単な方法があります。
今までは配列hairetuに文字列データ"neko"を取り込むのに
次のプログラムのように
配列変数
hairetu[0]
hairetu[1]
hairetu[2]
hairetu[3]
hairetu[4]
に
文字データ
'n'
'e'
'k'
'o'
'\0'
を
1文字ずつ👇」
#include <stdio.h>
int main(void)
{
char hairetu[5];
hairetu[0]='n';
hairetu[1]='e';
hairetu[2]='k';
hairetu[3]='o';
hairetu[4]='\0';
printf("%s\n",hairetu);
return 0;
}
プログラムの実行結果
neko
ソーラー「👆このプログラムのように
格納してきました。
この配列の初期化方法(文字データ格納方法)を簡略化して
次のようにプログラムを記述することもできます。
#include <stdio.h>
int main(void)
{
char hairetu[5]={'n','e','k','o','\0'};//👈ココの部分ですね
printf("%s\n",hairetu);
return 0;
}
プログラムの実行結果
neko
ソーラー「今までのように
この初期化方法でも
配列hairetuに文字列データ"neko"がとりこまれているのが
プログラムの実行結果に
nekoが表示されていることからわかります。
文字列データ"neko"がとりこまれているということは
お馴染みヌル文字(ナル文字)\0もちゃんと配列hairetuに格納されているよね
ただし以。下のプログラムをご覧ください
(👆この表現おもしろいかな by ソーラー)
#include <stdio.h>
int main(void)
{
char hairetu[5];
hairetu[5]={'n','e','k','o','\0'};
printf("%s",hairetu);
return 0;
}
プログラムの実行結果
EAZY IDECの場合
ファイル「C:/Users/solarplexuss/AppData/Local/EasyIDEC/project/aaaaa/main.c」の
「6行目」で記述エラーを発見しました。
unrecognized character \x81
Visual Studioの場合
エラー C2146 構文エラー: ';' が、識別子 '=' の前に必要です。
エラー C2065 '=': 定義されていない識別子です。
エラー (アクティブ) E0065 ';' が必要です
ソーラー「
このプログラムの実行結果をみてもわかるように
char hairetu[5]={'n','e','k','o','\0'}; と記述するところを
char hairetu[5];(配列宣言)
hairetu[5]={'n','e','k','o','\0'} (配列の初期化)
のように
配列宣言と配列の初期化をきりはなして行うことはできないんだよ。
そして
さらにもっと簡単に
配列hairetuに文字列データ"neko"を
char hairetu[5]="neko";
と記入してとりこむこともできます。
この場合でも
ナル文字の\0の分だけ
char hairetu[4]="neko";
でなく
char hairetu[5]="neko";
と
1つ分余計に要素数をかきこまなければ
いけません
配列変数
hairetu[0]
hairetu[1]
hairetu[2]
hairetu[3]
hairetu[4]
に
文字データ
'n'
'e'
'k'
'o'
'\0'
が
格納されるというわけです
char hairetu[5]="neko";のように
一度に配列宣言と配列の初期化をおこなう必要があります。
さらにさらにもっと簡単に配列の[]の中の要素数も記述せず
char hairetu[]={'n','e','k','o','\0'};や
char hairetu[]="neko";と
記述する方法があります。
この場合
自動的に{'n','e','k','o','\0'}や"neko"にあわせて
char型の配列hairetu内に
配列変数
hairetu[0]
hairetu[1]
hairetu[2]
hairetu[3]
hairetu[4]
が生成され
hairetu[0]
hairetu[1]
hairetu[2]
hairetu[3]
hairetu[4]
に
hairetu[0]='n';
hairetu[1]='e';
hairetu[2]='k';
hairetu[3]='o';
hairetu[4]='\0';
と
n'
'e'
'k'
'o'
'\0'(ヌル文字も)
が格納されていきます。」
アレサ「わかりやすいですの😊」
ソーラー 「アレサ、char型の配列の初期化法はこんな感じ・・・かな?
その中でも
char hairetu[]="neko"と配列に文字列データをとりこむのが一番簡単な方法かな?」
アレサ「はい、(^^)/
これで一文字ずつ配列に文字データを格納しなくても
簡単に配列に文字列データをとりこむことができるようになりました。」
ソーラー「というわけでえ~
一番簡単な初期化方法で文字列データを配列にとりこんで
その文字列データをprintf出力表示してみたいと思います
さぁて お披露目してみると~~
#include <stdio.h>
int main(void)
{
char hairetu[ ]="neko funnjyatta";
printf("%s\n",hairetu);
return 0;
}
プログラムの実行結果
neko funnjyatta
となるわけです。
ちゃんとnekoとfunnjyattaの間の空白までprintf出力表示されてるよ
お茶目さんだね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます