C言語 scanfで文字列を入力する方法

プログラミング

 

今回はscanfで文字を入力する方法を解説します。文字入力は文字通り、キーボードで何かを入力したときにそれがプラグラム内で使われたりすると言うことです。具体的にどんなことが出来るのかは以下の画像を見てください。

まずは文字を入力します。

 

入力しました。エンターキーを押します。

 

先程入力した文字列が表示されます。

 

こんな感じで、自分の好きな文字を入力してそれを表示するプログラムを作っていきます。

 

これからやることのまとめ

 

これからやることをざっくり書いておきます。

 

  • 文字列を扱うための変数aを宣言
  • scanfで変数aに文字列を代入
  • printfで先ほど入力した文字列を表示

 

文字列を扱うための変数の宣言

 

まずは文字列を扱うための専用の変数を定義しましょう。今回わたしが変数としておくのは適当にaです。そしてそのための宣言は char a[1024]; と書きます。

 

ここで「へ!?なんだよcharって?a[1024]もよくわからん…」と思う人、いるはずです。char(チャ―)は文字を扱うときに使う変数の型です。

 

整数を使う時にはintを使っていたのを思い出してください。数字の時はintを使い、文字の時はcharを型として使うと考えてもらえれば大丈夫です。

 

次に a[1024] ですが、すいません。このa[1024]というのは配列といわれるもので、文字列を入力するときはこの配列というものを使わなければいけません

 

なので本来はその配列の説明からしなければいけないのですが、配列の解説はむずかしいので今回は「文字列を扱うときは配列を使う」ということで理解してください。すいません(土下座)

 

ということで、配列の表示の仕方は a[1024] となります。(1024は入れられる文字の限界です。)

 

scanfで変数に文字列を代入

 

scanfで文字列を入力するときに、注意してほしいのが変換指定子です。文字列に対応する変換指定子は「%s」です。

 

整数を扱うときの変換指定子は、%dでしたよね?これが、文字列を扱う時の変換指定子は%sになるんです。なので、scanfで文字列をさきほど定義したaに代入するコードは

scanf(“%s”,&a);

となります。

※&を忘れずにつけてくださいね。

 

printfで文字列を表示

 

最後にprintfで、さきほどのscanfで入力した文字列を表示します。こちらで使う変換指定子も、文字列を扱うということで %s を使います。

 

なので、実際のコードは printf(“入力した文字列:%s”,a); となります。最後には実際に実行してみましょう。

 

scanfで入力した文字列を表示するプログラムを実行

 

これまでの流れからできたプログラムはこんな感じです。

 

【ソースコード】

自分のプログラムと確認して、抜けているところがないかをよく確認してください。

では、実行します。

 

【実行結果】

最初にこのような表示がされます。

実際に文字列を入力していきます。入力する際は、英語だけではなく日本語もOKです。

 

入力したのでエンターキーを押します。

OKですね。

 

以上が、C言語 scanfで文字列を入力する方法です。

コメント