読者です 読者をやめる 読者になる 読者になる

ぷろぐらみんぐ!

プログラマーを目指して勉強する大学生のブログ

文字変数?文字列配列? #10

<stdio.h> string.h C言語 printf scanf プログラミング 出力変換指定子 比較 苦C 配列 文字変数 文字列配列

こんにちは!

 

前回からかなり間が空いてしまいました。

あんまり時間が経つと勉強したことを忘れてしまうので、できるだけ短期間で終わらせたいと思います。

 

 

さて、今回は文字の扱い方からやっていきます!

 

文字変数と文字列配列

  • C言語には文字列変数は無いが、文字変数(1文字だけ)ならある。
  • 文字変数は下のようにして宣言する。

f:id:fujigg7:20170312043135p:plain

  • 文字変数の出力変換指定子は%c。
  • char型では文字を数字に置き換えて記憶している。
  • なので、文字や数字を数値に置き換えて計算することもできる。
  • 文字や数字を数値として知りたい場合は、文字や数字から '0' を引く。
  • C言語で文字列を扱いたい場合は文字変数の配列を作る。
  • 文字列の文字数を数えるために、文字列の最後にEOSと呼ばれる文字を付ける。
  • C言語でのEOSは\0で、\0は数値としては0。
  • " " で囲まれた文字列を文字列リテラルという。
  • printf関数で文字列を表示させるには%s指定子を使う。
  • 数字を数値に変換したい場合はatoi関数を使う。
  • atoi関数を使うにはstdlib.hを#includeしなければならない。
  • atoi関数は下のようにして使う。

f:id:fujigg7:20170318062943p:plain

  • 数字ではない文字列をatoi関数で変換した場合は0に変換される。
  • 文字列をコピーしたい場合はstrcpy関数を使う。
  • strcpy関数を使うにはstring.hを#includeしなければならない。
  • strcpy関数は下のようにして使う。

 f:id:fujigg7:20170318063252p:plain

  • 配列に格納されている文字列を結合するにはstrcat関数を使う。
  • strcat関数を使うにはstring.hを#includeしなければならない。
  • strcat関数は下のようにして使う。

f:id:fujigg7:20170318064550p:plain

  • あらゆる種類の文字列を合成できるsprintf関数を覚えておくと便利。
  • sprintf関数を使う時はstdio.hを#includeしなければならない。
  • sprintf関数は下のようにして使う。

f:id:fujigg7:20170318065429p:plain

  • scanf関数で文字列を入力するプログラムを書く時、配列名の前に&は付けない。

f:id:fujigg7:20170318065906p:plain

  • 文字列の数を数える場合はstrlen関数を使う。
  • strlen関数を使う時はstring.hを#includeしなければならない。
  • strlen関数は下のようにして使う。

f:id:fujigg7:20170318070338p:plain

  • 文字配列同士を比較する場合は、 == 演算子は使うことが出来ない。
  • 2つの文字配列が同じかどうか比較する時にはstrcmp関数を使う。
  • strcmp関数は2つの文字列が同じだった場合は0を返す。
  • strcmp関数を使うにはstring.hを#includeしなければならない。
  • strcmp関数端のようにして使う。

f:id:fujigg7:20170318071156p:plain

 

長文になってしまいました。

これでも少し飛ばしてるんですけどね笑

 

最後のstrcmp関数のところで、比較した文字列が違っていた場合は何を返すのかな?と思ったので、プログラムを書いてみました。

 

f:id:fujigg7:20170318072713p:plain

 

文字は適当です。

違う文字を比較した結果、何故か7が返ってきました。

文字を変えても7だったので決まっているのかな?

 

ここまで来たら練習問題です。

 

f:id:fujigg7:20170318074006p:plain

 

解答例ではstrcat関数を使っていました。

でもまぁsprintf関数の方が楽でいいですね。

stdio.hで使えるのも便利です。

 

それにしても、「stdio.hを#includeする」というところ、なんかかっこいいですね笑

いまいち日本語でなんと言えばいいのかわからなかったので、今回はそのまま書きました。

 

苦Cもそろそろ終わりが見えてきました。

これが終わったら、次はどうしようかな。

 

それでは。

プログラミングの勉強が捗る簡単な方法

その他 Ubuntu Visual Studio Atom

こんにちは!

 

最近プログラミングの勉強をしていて、Visual Studioが重たいと感じるようになってきました。

軽くする方法について調べていたのですが、どれもいまいち。

そこでUbuntuを入れてみることにしました。

 

実は以前、訳あってUbuntuを使っていたことがありました。

その頃にも少しプログラミングの勉強をしていたのですが、その時は快適に勉強できていた気がする!

ということで、UbuntuとWindows10のデュアルブート?をしてみました。

 

勢いで入れてみたのですが、案外うまく行ったのでこれからはプログラミングの勉強はUbuntuで、ゲームをする時はWindows10を使っていきたいと思います。

勉強用とゲーム用とで分けると、すごく集中出来るようになります!

 

テキストエディタatomでプログラムを書いて、gccを使ってコンパイル、実行をして行きたいと思います。

 

f:id:fujigg7:20170318082601p:plain

 

atomはおしゃれかつ便利でいいですよね。

テーマは公式のOne Darkがお気に入りです。

勉強中に気が散らないようにブラウザも普段使っているgoogle chromeではなく、Vivaldiを使うことにしました。

ますますやる気が出てきたのでこれからはブログの更新頻度も上げて頑張ろうと思います!

 

それでは。