🌞scanf関数を使って空白を含んだ文字列データ"Hello nyannko"を配列にとりこむことはできませんがgets関数(get_s関数)をもちいればそれが可能となります🌞 



         😊つ🍎づ🍎き😊です




#pragma warning(disable: 4996)


#include <stdio.h>


int main(void)

{

char hairetu[10000];

scanf("%s",hairetu);

printf("%s\n",hairetu);


return 0;

}


このプログラムをコンパイルして


アンダーバー

_


が表示される


入力待機中のコマンドプロンプト画面で


Hello nyannko 


とうちこむと・・・・・


コンパイル結果


Hello nyannko (と入力すると)

Hello (だけが表示されます)


ソーラー「つまり


scanf関数では


空白部分を含んだ文字列データ"Hello nyannko"を


char型の配列にそのまま格納することはできないんだ。


どうやったら文字列データ"Hello nyannko"を


char型の配列に空白スペースを含んだそのままの形で


格納することができるのか?


👉


そんな 貴女にチャレンジ ジョイ


この台所洗剤をつかえば


しつこい油汚れもすっきりと落ちます。


👉



アレサ「ソーラーさん



ここではgets関数をもちいれば


文字列データ"Hello nyannko"を


そのまま


char型の配列に格納することができます。


次のプログラムをご覧ください。


#include <stdio.h>


int main(void)

{

char hairetu[10000];

gets(hairetu);

printf("%s\n",hairetu);


return 0;

}


コンパイル結果


(EAZY IDECの場合)


Hello nyannko(と入力すると)

Hello nyannko(と表示されます)


ビルド実行結果


(Visual Studioの場合)


エラー (アクティブ) E0020 識別子 "gets" が定義されていません

エラー C3861 'gets': 識別子が見つかりませんでした



ソーラー「?


Visual studioではgets関数を使用することはできないんだね」


アレサ「はい


gets関数はVisual studioでは使用できないのです


そこで


Visual studioでは


Visual studio専用に開発された


gets_s関数を使用することになります



#include <stdio.h>


int main(void)

{

char hairetu[10000];

gets_s(hairetu);

printf("%s\n",hairetu);


return 0;

}


コンパイル結果


(EAZY IDECの場合)


コンパイラに内部エラーが発生しました。

undefined symbol 'gets_s'



ビルド実行結果


(Visual Studioの場合)


Hello nyannko(と入力すると)

Hello nyannko(と表示されます)


ソーラー「今度は


統合開発環境EAZY IDECでは


gets_s関数は定義されていませんと


コンパイルエラーが表示されたね。


面白いな・・


ところで


gets関数の仕組みはどうなっているのかな?」


アレサ「gets関数は


get sentense(文字列)


の略で


文字列データを


char型の配列に格納する働きがあります。


char型の配列に文字列データを格納したい場合は


gets(hairetu)


のように


データを格納したい配列の配列名を


gets関数の引数に書き込んで使用します。」


ソーラー「それだけ? とっても簡単だね」


アレサ「はい😊 この gets関数をつかえば


Hello nyannko


や


apple lemon beatless


のように


文字列データの1部に空白を含んでいても


そのまま


char型の配列に格納することができます。


次のプログラムをご覧ください」



#include <stdio.h>


int main(void)

{

char hairetu[10000];

gets_s(hairetu);

printf("%s\n",hairetu);


return 0;

}


ビルド実行結果


(Visual Studioの場合)


apple lemon beatless(と入力すると)

apple lemon beatless(と表示されます)


アレサ「


apple lemon beatless


と入力してEnterキーをおすと


文字列データ"apple lemon beatless"


は


空白スペースとともに


char型の配列hairetuに格納され


コマンドプロンプト画面には


文字列に空白スペースがふくまれている


apple lemon beatless


が表示されます」


ソーラー「これは便利な関数だね


文字列に空白スペースを含んでいるものは多いから


gets関数はこれからたくさん使用しそうだね。」




































  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます