C言語解説入門


こんにちは、硲勇司です。
今回は、char(文字)の配列を解説したいと思います。 私が解説する多くは、初めてC言語を触った人にとっては
かなり、理解が難しいと思います。 そのため、わからないワードや理解していない部分は
個人で調べてください。 プログラミング等で内容を調べる事は、かなり重要ですからね(笑)

では、内容に入っていきたいと思います。 まず前回使ったサイトを利用して、以下を打ち込んでみてください

char x[3] = {'a','b','c'};


これは、単純にcharの配列、つまり

文字が入る箱が並んでいると思い浮かべてください

コードを順に説明すると、char(文字)の箱が xという名前で 3 つ並んでおり、 a , b, c と順に入っているという事です。
前回も説明しましたが、文字を指定する場合、('')シングルクオーテーョンで囲ってくださいね
順に意味が分かると意外と簡単ですよね? では、次にこれを入力してください。

char x[3] = {'a','b','c'};

printf("%c",x[1]);

これで、実行してみてください、
実行結果として、bと出力されたはずです。

解説すると、[a][b][c] という箱があり、
前回習った、printf()表示するという関数で、
(%c)文字を表示する 何を表示するか xの1番目を、
という、意味です。
プログラムでいう数え方は、0123と0から始ます。

どうでしょうか?、理解出来ましたか?
出力指定フォーマット(%dや%cなど)は色々ありますので、個人で調べてみてください。
では次に、printf()表示するという関数をいじってみましょう。


printf("私は%cを表示しています。",x[1]);

このようにprintf()をいじってみてください。
そして、実行すると

私はbを表示しています。

と表示されるはずです。
つまり、printf()関数は、%Cや%d などのフォーマット部分に、
後ろの変数が出力されるという事です。

では、出力指定フォーマットを変えてみましょう

char x[3] = {'a','b','c'};
printf("私は%dを表示しています。",x[1]);

98

なぜか、98と表示されていませんか?
それは、文字をPCで処理するにあたって、ASCⅡを使っているからです。
ASCⅡとは、コード表のことで、
bはASCⅡで 98 ですから、
つまり、bという文字を、整数で表示しろとなっているからです。
ネットで、ASCⅡと打てば、色々出てくるでしょう。
とりあえず、PCでは文字は整数で扱っていると思っていただいてかまいません
PCは結局、数字しか処理できないため、ASCⅡなどの整数と文字を表として、
登録していると解釈してください。
次は、このように入力してください

char x[]= {'a','b','c','d'};

printf("%s",x);

%sは文字列の表示ですね。つまり、文字一つではなく、全部表示しろという事
abcdと表示されたはずです。
なぜか、paiza.ioで私の場合は?が大量発生しましたけどw
charの[]は空白ですね、これは後に初期化している文字数に合わせて、
長さを決めることが出来るんです。
これで、Int(整数),char(文字),string(文字列)の宣言方法は理解できたでしょうか?
これらを参考に、この宣言は出来るのか?
などと、色々試して見てください、これが結構勉強になるんです。(笑)


次に、文字を読み取るプログラムを書いてみましょう。

int x = 0;
scanf("%d",&x);
printf("%d",x);

scanf()とは、文字を読み取る関数です。
引数として、文字列の形式入力をための変数を入れます。
ちなみに、引数とは、printf()やscanf()・for()などの
カッコの中身に入れる変数などのことです。

今回私が、使っている、piza.ioオンラインコンパイラーは下のタブにある、
入力というところを開いて入力し実行することで、出来ます。

上記のscanf()を解説していきましょう。
左から順に第一引数第二引数といい、
scanf()の場合、第一引数ではフォーマット指定をしています。
scanf()を使う場合、入れる変数名に、&を付けます。
入力は、整数以外にも、文字や文字列を受け取ることが出来ます。

char x[10];
scanf("%s",x);
printf("%s",x);


この場合は、どうなるでしょうか?
解説していきましょう。
文字列を指定する場合のフォーマット指定は%sでした。 この場合は、第二引数の&は必要ありません。
宣言は、charのため、変数の配列ごとに文字が入ってると考えてください。


初めての人は、理解に苦しむと思いますが、
自分なりに、上記のプリグラムを実行して、少し変えて実行してみたりと
サンプルプログラムをいじることで、理解が深まると思います。
色々と、試してみてください。




part.1

整数と文字の宣言と初期化 printf()を使い、
%d や %c を使用して
整数・文字の表示をしてみます。

part.2

printf()で、%sを利用し、
文字、文字列の表示を解説します。
printf()で、文字を整数で
表示したらどうなるか。

part.3

for文を利用し、
for文によるループ処理を解説します。
インクリメント演算子 ++ や
代入演算子 += を使って
サンプルプログラムを作ってみます。

part.4

for文を利用し、
関数とは何か、そして
関数の定義の方法、その使い方
サンプルプログラムを作ってみます。