文字変数?文字列配列? C#10
こんにちは!
前回からかなり間が空いてしまいました。
あんまり時間が経つと勉強したことを忘れてしまうので、できるだけ短期間で終わらせたいと思います。
さて、今回は文字の扱い方からやっていきます!
文字変数と文字列配列
- C言語には文字列変数は無いが、文字変数(1文字だけ)ならある。
- 文字変数は下のようにして宣言する。
- 文字変数の出力変換指定子は%c。
- char型では文字を数字に置き換えて記憶している。
- なので、文字や数字を数値に置き換えて計算することもできる。
- 文字や数字を数値として知りたい場合は、文字や数字から '0' を引く。
- C言語で文字列を扱いたい場合は文字変数の配列を作る。
- 文字列の文字数を数えるために、文字列の最後にEOSと呼ばれる文字を付ける。
- C言語でのEOSは\0で、\0は数値としては0。
- " " で囲まれた文字列を文字列リテラルという。
- printf関数で文字列を表示させるには%s指定子を使う。
- 数字を数値に変換したい場合はatoi関数を使う。
- atoi関数を使うにはstdlib.hを#includeしなければならない。
- atoi関数は下のようにして使う。
- 数字ではない文字列をatoi関数で変換した場合は0に変換される。
- 文字列をコピーしたい場合はstrcpy関数を使う。
- strcpy関数を使うにはstring.hを#includeしなければならない。
- strcpy関数は下のようにして使う。
- 配列に格納されている文字列を結合するにはstrcat関数を使う。
- strcat関数を使うにはstring.hを#includeしなければならない。
- strcat関数は下のようにして使う。
- あらゆる種類の文字列を合成できるsprintf関数を覚えておくと便利。
- sprintf関数を使う時はstdio.hを#includeしなければならない。
- sprintf関数は下のようにして使う。
- scanf関数で文字列を入力するプログラムを書く時、配列名の前に&は付けない。
- 文字列の数を数える場合はstrlen関数を使う。
- strlen関数を使う時はstring.hを#includeしなければならない。
- strlen関数は下のようにして使う。
- 文字配列同士を比較する場合は、 == 演算子は使うことが出来ない。
- 2つの文字配列が同じかどうか比較する時にはstrcmp関数を使う。
- strcmp関数は2つの文字列が同じだった場合は0を返す。
- strcmp関数を使うにはstring.hを#includeしなければならない。
- strcmp関数端のようにして使う。
長文になってしまいました。
これでも少し飛ばしてるんですけどね笑
最後のstrcmp関数のところで、比較した文字列が違っていた場合は何を返すのかな?と思ったので、プログラムを書いてみました。
文字は適当です。
違う文字を比較した結果、何故か7が返ってきました。
文字を変えても7だったので決まっているのかな?
ここまで来たら練習問題です。
解答例ではstrcat関数を使っていました。
でもまぁsprintf関数の方が楽でいいですね。
stdio.hで使えるのも便利です。
それにしても、「stdio.hを#includeする」というところ、なんかかっこいいですね笑
いまいち日本語でなんと言えばいいのかわからなかったので、今回はそのまま書きました。
苦Cもそろそろ終わりが見えてきました。
これが終わったら、次はどうしようかな。
それでは。