情報科学演習 実習課題 2016.01.25

Back to text page


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

$ ./a.out | less

実習課題

  1. 文字列配列(2次元)の基本

    以前に行ったじゃんけんのプログラムを以下の配列を用意して if 文や switch 文なしで作成しましょう.

    	char hand[3][6] = {"Gu", "Choki", "Pa"};
    	char result[3][15] = {"Aiko", "Winner is me!", "Winner is you!"};
    

    You: Choki
    Me:  Choki
    Aiko
    
    You: Gu
    Me:  Gu
    Aiko
    
    You: Choki
    Me:  Choki
    Aiko
    
    You: Pa
    Me:  Choki
    Winner is me!
    

  2. 縦書き

    以下に示す5文字の単語5つからなる配列を用意します.

    	char word[5][6] = {"river", "table", "socks", "house", "shoes"};
    

    これを普通に表示した後,縦書に変えて表示するプログラムを作成しましょう.

    river
    table
    socks
    house
    shoes
    
    s  h  s  t  r
    h  o  o  a  i
    o  u  c  b  v
    e  s  k  l  e
    s  e  s  e  r
    

  3. 文字列からの文字の削除

    以下の配列を使って,ランダムにその中の1文字を選んで配列からその文字を削除するプログラムを作成しましょう.

    	char str[11] = "abcdefghij";
    

    A character to delete: d
    abcefghij
    

    最後に配列を表示するときには,必ず以下の文を使用してください.

    	printf("%s\n", str);
    
  4. %c での文字表記

    以下のような配列があるとします.

    	char str[5][10] = {"ab", "cdefg", "hij", "klmnopqrs", "tuvwxy"};
    

    この配列に含まれる文字列を for 文を使用して順に表示する場合には %s を使用すれば簡単に出来ます.それを2重の for 文を使用して %c を使用して表示させるプログラムに変えることを考えてみましょう.

    ab
    cdefg
    hij
    klmnopqrs
    tuvwxy
    

    教科書p.90の strlen 関数を使います.
  5. 文字検索

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

    	char fc[6][10] = {"Arsenal", "Barcelona", "Bayern", "Dortmund", "Liverpool", "Sanfrecce"};
    

    アルファベットの小文字をどれか一つ乱数により発生させ,その文字を含むチーム名を表示するプログラムを作成せよ.チーム名の先頭の大文字部分も一致対象とするものとする.

    Key letter: s
    Arsenal Sanfrecce
    


Back to text page