情報科学演習 実習課題 2014.01.16

Back to text page


文字列を扱うプログラムを実行する際には必ずページャの less に処理を渡すこと.

$ ./a.out | less

実習課題

  1. 文字列の基本

    文字列の配列を用意して,それを逆順に表示するプログラムを作成しましょう.

    abcdefg
    gfedcba
    

  2. 前問を改造して,以下のように表示するプログラムにしましょう.

    abcdefg
     bcdefga
      cdefgab
       defgabc
        efgabcd
         fgabcde
          gabcdef
    

  3. 以下に示す文字列配列を用意します.

    	char str[11] = "abcdefghij";
    

    0から5までの整数 m と2から4までの整数 n の二つを乱数を用いて発生させます.配列 str m 番目の要素を n 回繰り返すように文字列の一部を置き換えて表示するプログラムを作成しましょう.

    m=4 and n=3
    abcdeeehij
    

  4. ランダムな文字列

    アルファベットの小文字26文字の範囲内の文字をランダムに20文字表示するプロ グラムを作成しましょう.なお,文字の重複はあっても良いものとします.

    nwlrbbmqbhcdarzowkkyh
    

    教科書のp.143からのASCIIコード表を利用すると,アルファベットを数値で扱う ことが出来ます.そこでコード表にある整数値を要素として持つ int 型の配列を作り,上の例のように %c を使って教科書のp.14にある例 題2.4のようにコードから文字を表示させます.
  5. 並べ替え

    前問を改造し,アルファベット順に並べ直して表示する機能を付加しましょう.

    nwlrbbmqbhcdarzowkky
    abbbcdhkklmnoqrrwwyz
    

  6. 文字追加表示

    以下に示す配列を用意する.

         char str[27] = "abcdefghijklmnopqrstuvwxyz";
    

    1桁の正の整数を乱数で発生させて,その文字数分のところで毎回スペースを入れ て表示させましょう.

    4
    abcd efgh ijkl mnop qrst uvwx yz
    

    この問題では if 文と剰余の使用法がポイントです.
  7. 並べ替え2

    前問の配列を使用してプログラムを一部改造します.1桁の正の整数を乱数で発生させてその文字数分ずらし て表示させましょう.

    3
    xyzabcdefghijklmnopqrstuvw
    

  8. 文字列に関する代入操作

    数値を値に持つ変数については,値を別の変数に代入することは等号記号 = を用いて簡単に行えますが,文字列をそのまま代入することはC言語では簡単ではありません.そこで,文字列の値の代入に関する方法として,以下の2つを試して下さい.

    	char str1[4] = "abc";
    	char str2[4];
    

    のような2つの文字列配列を用意して,配列 str1 の中身である文字列 abc を配列 str2 に移す操作を行なう場合,for 文を使用して,1文字ずつ代入するプログラムを作成しましょう.

    次に,C言語に用意されている文字列コピー関数 strcpy を使用して試しましょう.この関数は教科書のp.91に説明があるように以下のようにして使用します.また,このとき,教科書のp.89にあるようにヘッダファイルを追加する必要がありますので注意してください.

    	char str1[4] = "abc";
    	char str2[4]
    	
    	strcpy(str2, str1);
    	
    	printf("%s\n", str2);
    


Back to text page