練習 [14] 後半の復習(2/5)

練習 2(提出プログラム名:p1402a.c)

まず,このプログラム(p1402a.c)をダウンロードしなさい.
p1402a.c では 1 つの文字列(パスワードの候補)を読み込み,
その文字列が次の 5 つの条件すべてを満たしているかどうかをチェックしようとしている:
 (1) 長さは LIMIT 文字以上か?(LIMIT はマクロで定義してある)
 (2) アルファベット小文字を使っているか?
 (3) アルファベット大文字を使っているか?
 (4) 数字を使っているか?
 (5) 記号を使っているか?


なお,それぞれの条件については,満たしていれば OK と出力し,
そうでなければ以下の実行例のように警告を発するものとする.

このプログラムを完成させなさい.
なお,次のライブラリ関数だけは使ってよいものとする:
  strlen   … 文字列の長さを調べる(int 型へキャストして使うこと)
  islower  … その文字がアルファベット小文字かどうかを調べる
  isupper  … その文字がアルファベット大文字かどうかを調べる
  isdigit  … その文字が数字かどうかを調べる
  ispunct  … その文字が記号かどうかを調べる

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
チェックしたい文字列を入力してください(64文字未満)
> hoge
1) 長さ:***(短すぎます; 8 文字以上は必要)
2) アルファベット小文字:OK
3) アルファベット大文字:***(アルファベット大文字が必要)
4) 数字:***(数字が必要)
5) 記号:***(記号が必要)
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
チェックしたい文字列を入力してください(64文字未満)
> hogefuga
1) 長さ:OK
2) アルファベット小文字:OK
3) アルファベット大文字:***(アルファベット大文字が必要)
4) 数字:***(数字が必要)
5) 記号:***(記号が必要)
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
チェックしたい文字列を入力してください(64文字未満)
> Hogefuga
1) 長さ:OK
2) アルファベット小文字:OK
3) アルファベット大文字:OK
4) 数字:***(数字が必要)
5) 記号:***(記号が必要)
  • 【プログラムの実行例】(その4)赤字は実行時にキーボードから入力する内容
チェックしたい文字列を入力してください(64文字未満)
> Hogefuga5
1) 長さ:OK
2) アルファベット小文字:OK
3) アルファベット大文字:OK
4) 数字:OK
5) 記号:***(記号が必要)
  • 【プログラムの実行例】(その5)赤字は実行時にキーボードから入力する内容
チェックしたい文字列を入力してください(64文字未満)
> Hoge+fuga8
1) 長さ:OK
2) アルファベット小文字:OK
3) アルファベット大文字:OK
4) 数字:OK
5) 記号:OK

【過去にあったミス(減点となり,やり直しを命じられる)】
5種類の実行例を確認せずに提出してしまっている.
出力される警告の内容が実行例とは違っている
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習3 (p1403a.c) ]