演習時間: 40 分


アスキー文字とマルチバイト文字

今年度は省略


2. 文字列配列


演習 1 (個人PC、5分): 文字列配列の途中の文字から文字列を表示してみましょう。

main 関数の中で長さ 256 の文字列配列 a を定義します。定義と同時に何か好きな半角英数字の文字列で初期化しておきます。文字列の長さは 10 文字程度にして下さい。
a の内容を「2 文字目から」 printf で表示して下さい(文字列なので %s を使います)。
ドキュメントファイルに「ソースコード」と「実行結果」をコピーして保存してください。


演習 2 (個人PC、25分): 「文字列渡し」を使って関数の中で文字列配列の中の文字にアクセスしてみましょう。

main 関数を作る前に以下の仕様で関数を作って下さい。

(1) 関数の戻り値の型は void 型とする。

(2) 関数名は HOGE とする。

(3) char 型ポインタ変数 pa (※)と int 型変数 n の 2 つを引数とする。 n は文字数(ヌル終端文字は除く)とする。

 ※ 「配列渡し」で学んだ様に引数定義として記法 2 又は記法 3 を使っても構いません。

(4) 関数の中で以下の手順で呼び出し元の文字列配列の内容を逆順に表示する。
4-1. for ループで使う int 型変数 i を定義する。
4-2. i を n-1、n-2、・・・、0 と変化させる for ループを作る。
4-3. for ループの中で呼び出し元の配列の i 番目の文字を一文字だけ表示させる(改行は無し、一文字だけなので %c を使う)。
4-4. for ループから抜けたら改行文字 \n を printf する。

HOGE 関数の下から main 関数を始めて下さい。
main 関数の中で長さ 256 の文字列配列 a を定義します。定義と同時に何か好きな半角英数字の文字列で初期化しておきます。文字列の長さは 10 文字程度にして下さい。
HOGE 関数を呼び出して文字列配列 a の内容を逆順に表示して下さい。
ドキュメントファイルに「ソースコード」と「実行結果」をコピーして保存してください。


3. 標準関数による文字列操作


演習 3 (個人PC、10分): str 系標準関数を使って文字列を操作しましょう(※)。

※ テキストに書いたように str 系標準関数はもの凄く危険な関数なので、実際には str〜_s 系標準関数を使うべきです。

main 関数に入る前に string.h をインクルードします。
main 関数の中で長さ 256 の文字列配列 a を定義します。定義と同時に何か好きな半角英数字の文字列で初期化しておきます。文字列の長さは 10 文字程度にして下さい。
main 関数の中で長さ 256 の文字列配列 b を定義します。定義と同時に何か好きな半角英数字の文字列で初期化しておきます。文字列の長さは 10 文字程度にして下さい。

printf と strlen 関数を使って a の長さを 10 進数で表示して下さい。
strcat 関数を使って a の内容の後に b の内容を追加して下さい。
a の内容を printf で表示して下さい(文字列なので %s を使いましょう)。
strcpy 関数を使って b の内容を a にコピーして下さい。
a の内容を printf で表示して下さい(文字列なので %s を使いましょう)。
ドキュメントファイルに「ソースコード」と「実行結果」をコピーして保存してください。