配列の使い方が分からない!
文字列の出力方法を知りたい!
この記事を読めば、これらの悩みを解決できます。
ほとんどの場合、配列を教えるときに、箱を使って表現されますが、ここでは「変数の大量生産」と表現していきます。変数を今まで勉強してきた皆さんにはその方が伝わりやすいと思うからです。
配列は変数をたくさん使うのと同じ!【難しくない】
「配列を使う」というのは「変数をたくさん使う」のと同じで、全く難しくないです。実際はもう少し奥が深いのですが、今はそれだけ覚えてもらえれば十分です。
配列の変数宣言
まずは、変数宣言をします。このとき、
データ型 配列名[欲しい変数の数];
と書きます。
例えば、3つの配列が欲しいと思ったら、「int a[3];」になります。こうすると、a[0]、a[1]、a[2]という3つの変数ができます。
今回、配列を教える際に、a[0] = 3、a[1] = 2、a[2] = 2を出力するプログラムをつくります。
配列の初期化(代入)
先ほど作ったa[0]、a[1]、a[2]という変数は通常の変数と同じように初期化(代入)ができます。
どういう事かと言うと、
a[0] = 3;
a[1] = 2;
a[2] = 2;
このようにして、a[0]に3、a[1]に2、a[2]に2を代入できます。
その後、printf関数で出力します。
ここまでをまとめたプログラムを書いてみます。
#include<stdio.h>
int main()
{
int a[3];
a[0] = 3;
a[1] = 2;
a[2] = 2;
printf("a[0]=%d¥n", a[0]);
printf("a[1]=%d¥n", a[1]);
printf("a[2]=%d¥n", a[2]);
}
こういう感じです。今まで、変数を入れていた位置に配列を入れればOKです。
では、出力してみましょう。
配列を使って文字列を書こう!
この投稿でも話しましたが、いくつもの変数に文字を代入して、文字列を出力するのはとても時間がかかります。しかし、配列を習った皆さんなら、簡単に書くことができます。
今回は「scanf」を使って「Hello!」という文字列を配列内に代入し、「printf関数」でその配列を出力するプログラムをつくっていきます。
scanfはこちらの投稿に載っているので見といてください。(簡単に言うと出力結果の画面で変数に代入できる関数です。)
文字列を代入するとき、変数宣言で(代入する文字数+1)個以上の配列を用意する必要があります。
例えば、「b」という配列に6文字を代入する時は「char b[7];」と変数宣言します。これより多い文字数分の変数宣言しても問題ないです。
文字列の場合だと、使用する変換書式は「%s」で、「scanfに&を付けない」ということは覚えてください。scanfとprintfのどちらでも「%s」を使用します。
また、scanfとprintfの両方で、配列名の後ろに[6]などの数字は必要ないです。つまり、「b」と書くだけでb[0]~b[6]の文字列を表現することができます。
これらを踏まえてプログラムをつくってみます。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char b[7];
scanf("%s", b);
printf("%s", b);
}
こんな感じでコードを書きます。
このように「Hello!」と打つと「Hello!」という文字が出力されます。
文字列では配列の最後には何も代入できないということを、もう少し詳しくしりたい方はこちらを参考にしてください。(今回の場合だと「b[6]」には何も代入できません。)
まとめ
今回は「配列」という難しい分野を勉強しましたが、それほど難しくなかったかと思います。それは今まで、変数をちゃんと勉強してきたからです。基礎を固めれば難しい分野ではないんです。
次は、「getchar」と「putchar」を勉強しましょう。
コメント