問 7(提出プログラム名:ex1007.h)
※ex1007.c ではなく ex1007.h を提出なので注意!
このプログラム(ex1007.c)とヘッダ(ex1007.h)をそれぞれダウンロードし,
ヘッダの中の関数 count_alpha を完成させなさい.
(書き換えるのは ex1007.h のみであり,ex1007.c はコンパイルと実行に使うだけなので間違えないこと)
関数 count_alpha では,引数として与えられた文字列(char 配列)str について,
その文字列内に登場するアルファベットの文字数を調べて返すものとする.
(文字数カウントに使う変数を 0 で初期化するのを忘れないこと)
この問題では,入力された文字列(文字数は SIZE 未満)について,そこに含まれるアルファベットの文字数を count_alpha を使って調べて出力させている(SIZE はマクロで定義されている).
【注意】
この問題では ex1007.h を提出しなさい(ex1007.c ではない).
また,マクロの定義部分以外に 100 やそれに関係する数字を直接書いてはいけません.
【ヒント】
ある文字 str[i] がアルファベットかどうかは if ( isalpha(str[i]) ) で判定できます.
(講義スライドの最後のページを参照)
なお,if ( isalpha(str[i]) == 1 ) という具合いに == 1 を付けるのは間違いなので注意してください.
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
※例年,アルファベットの文字数が間違っていることに気が付かずに提出している人がいます.
文字列を入力してください:⏎ programming@cs.ehime programming@cs.ehime (アルファベットは18文字)⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
文字列を入力してください:⏎ h520987x h520987x (アルファベットは2文字)⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
文字列を入力してください:⏎ a a (アルファベットは1文字)⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
■ main 関数の方を書き換えてしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 問 6 (ex1006.h) ]
ミスが無いことを確認したら次の問題へ → [ 問 8 (ex1008.c) ]