練習 [10] 文字列(3/5)

練習 3(提出プログラム名:p1003.c)

サンプルプログラム 3 (sample3.c)p1003.c という別の名前のファイルにコピーしなさい.そして,p1003.c を編集し,サンプルプログラム 3 の動作の続きとして次の 2 つの動作も実行するプログラムに仕上げなさい.

【編集すべき内容】
ローカル部を出力した後に,その文字数も出力する.
②さらに,メールアドレスのドメイン(@よりも右側部分)とその文字数も出力する.

【注意】
マクロの定義部分以外に 100 (や 99, 98 といった関係する数字)を直接書いてはいけません.
また,C 言語には文字列の文字数を調べてくれる strlen という関数が標準ライブラリ関数として用意されているが,ここではこれを使ってはいけません.

【ヒント】
サンプルプログラム 3 の場合,最後の while 文による繰り返しが終わった時点で mail[i] == '@' となっています.つまり,この i を +1 すると(i++; を実行すると),mail[i]@ の 1 つ右の文字ということになりますので,これがドメインの先頭文字に該当します.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
    ※出力の最後に改行(\n)を入れ忘れないよう注意せよ
メールアドレスを入力してください:
aman@ehime-u.ac.jp
アドレスは aman@ehime-u.ac.jp (18 文字)
ローカル部は aman ですね (4 文字)
ドメインは ehime-u.ac.jp ですね (13 文字)
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
メールアドレスを入力してください:
aman.hirohisa.mm@ehime-u.ac.jp
アドレスは aman.hirohisa.mm@ehime-u.ac.jp (30 文字)
ローカル部は aman.hirohisa.mm ですね (16 文字)
ドメインは ehime-u.ac.jp ですね (13 文字)
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
メールアドレスを入力してください:
k520987x@mails.cc.ehime-u.ac.jp
アドレスは k520987x@mails.cc.ehime-u.ac.jp (31 文字)
ローカル部は k520987x ですね (8 文字)
ドメインは mails.cc.ehime-u.ac.jp ですね (22 文字)

【過去にあったミス(減点となり,やり直しを命じられる)】
3 種類の実行例を確認せずに提出してしまっている.
 例えば,誤って @ を文字数に含めていたり,ドメインとして @ も表示させてしまっている.
■ 文字数をカウントする変数を 0 に初期化せずに使ってしまっている.
ナル文字より後ろも表示させてしまい文字化けしている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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