こんにちは、
今回はIT業界未経験者がプログラミング言語、C言語の資格取得勉強をしていて難しいと感じた部分を紹介していきたいと思います。
(経験者の方からしたら本当に初歩の内容でそんなんしってるわ!と思うかもしれません
が、温かい目で見てもらえたら幸いです…)
さて、今回受験予定の試験はタイトルにある通りC言語プログラミング能力認定試験3級になります。
試験範囲としてはC言語習得の鬼門と言われているポインタや構造体については範囲外となります。
合格ラインは正答率60%となっている為、まだいけ…る?レベルとなっています。
テキストは、下記2冊をメインに使用していきます。
・新、明解C言語入門編
・過去問題集(サーティファイ社出版)
それでは実際にこれまで約1ヵ月勉強してみて、初心者目線で躓いた部分、難しいと感じた部分を簡単に紹介したいと思います。
・変換指定子
よく使用する指定子として下記のものがあります。
- %d = 10進整数
- %o = 8進整数
- %x = 16進整数
- %f = 実数
- %i = 8,10,16進整数
- %u = 符号なしの10進整数
- %s = 文字列
- %c= 文字
さらに変換指定子には他、条件を指定することが出来ます。
%[①フラグ][②最小フィールド値].[③精度][長さ修飾子][変換指定子]
①フラグ
ー = 左詰めに表示します
0 = 数字の前に0を表示します
②最小フィールド値
・結果がその長さ以下だった場合、左側が空白で表示されます
③精度
・整数変換の場合は、最低表示桁数を表し、足りない場合は0で埋められます。
実数変換の場合は、小数点以下桁数を指定します。
これらを踏まえて、例題の文を実行すると
#includeInt main(void) { int d = 256; char s[] = “Byteword”; printf(“[%-5d]\n”,d); =====>① printf(“[%%%5d]\n”,d); =====>② printf(“[%-10s]\n”,s); =====>③ printf(“[%4s]\n”,s); =====>④ printf(“[%6.4s]\n”s); =====>⑤ return 0; }
実行結果 (〇=半角空欄)
①[256〇〇]
・10進数5桁分の領域に左詰めで出力され、余った分は空白が出力されます。
②[%〇〇256]
・%%=%1文字を表します。
③[Byteword〇〇]
・文字列10文字分の領域に左詰めで出力されます。
④[Byteword]
・最小フィールド値が4文字分の為、超えた場合は末尾まで右寄せで出力されます。
⑤[〇〇Byte]
・6文字分の領域に右寄せで先頭から4文字分出力されます
今回のように出力する場合は、データの型をしっかりと意識しなければならない為複雑だと感じました。
(現在使用しているデータが何型なのかわからなくなりそうです…。)
他言語も少しですが勉強したことがありますが、型を意識しなくてもよい言語もある為余計難しく感じました。
今後慣れてくれば意識しなくても大丈夫になるのかもしれません。
今回は変換指定子について簡単に紹介致しました。
次回も初心者目線でC言語について紹介出来たらなと思います。