- 文字列 -
前のページ 次のページ
リスト
文字列って?
色々な文字列
文字列って?

C言語で言う文字列とは、実は配列のことなのです。文字列は配列であり、出力した結果、文章や単語として読める状態になるような値の集まりのことなのです。まず、初めに文字コードをと言う物を少しかじってみましょう。下のソースコードを見てください。

このソースコードを実行した結果は以下のようになります。

上の出力結果はAからZまでのアルファベットの文字コードを出力しています。アルファベットはコンピュータの裏側の世界では数値として処理されていて、この数値のことをコードと呼んでいます。そして、このコードは文字のコードを表すことから文字コードと呼ばれています。

皆さんも聞いたことがあると思いますが、世界中には様々な文字コードが文字コード表にまとまって存在しています。もっとも一般的な文字コード表はASCIIコード表だと思います。ASCIIコード表は1から255までの数値に文字を割り当てて表にしたものをいいます。だから、今回AからZまでの数値を出力しましたが、これはASCIIコード表の一部を出力したものになります。

文字列とは、これらの文字コードで表した文字が連続した状態のものを言います。下のソースコードを見て下さい。

実行結果は以下のようになります。

それでは、ソースコードの説明をします。
まず、配列の変数sを宣言しています。宣言した配列に1要素ずつ文字を代入します。この場合はaからiの値を代入しています。そして、最後の要素番号9に0x00を代入しています。この0x00null文字と言って、C言語では0のことです。null文字の説明は少し後にしますので、今は流しておいて下さい。

printfの中に書いてある%sと言うのは変数が持っている値を文字列データとして出力しなさいっていう命令です。この場合は変数sに格納されているデータをnull文字が来るまで出力することになるので、出力結果を見てみるとabcdefghとなっている訳です。そして、このabcdefghと言う連続したデータのことを文字列と呼びます。

色々な文字列

先ほど、例で示した文字列はあらかじめ、配列型の変数を宣言し、その変数の1要素毎に文字を代入するやり方でした。実は他にも文字列を扱う方法はたくさんあります。では、その方法を下のソースコードで紹介しましょう。

実行結果は以下の通り。

ポインタの変数を宣言し、宣言と同時に文字列を設定するやり方です。このように、宣言時に値を設定した場合はプログラム中では変更してはいけません。C言語の場合はバッファオーバーフローを起こすことがあるからです。

実行結果は以下の通り。

この場合も先ほどと、ほとんど同じです。ポインタの変わりに配列の変数を宣言しました。この宣言は要素数を指定していません。このような宣言もポインタと同じ扱いになります。なので、プログラム中で変更するようなことはしてはいけません。

実行結果は以下の通り。

この場合は先ほどまでのパターンとは違います。完全に配列を宣言しています。この場合、配列の要素数もしっかり指定しているため、プログラム中では要素数分の領域を確保しています。そのため、プログラム中で値を変更しても要素数分内であれば、いつでも変更することができます。



前のページ 次のページ