情報科学演習 実習課題 2017.01.23

Back to text page


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

$ ./a.out | less

実習課題

  1. 縦書き

    以下に示す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
    

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

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

    	char str[11] = "abcdefghij";
    

    A character to delete: d
    abcefghij
    

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

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

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

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

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

    ab
    cdefg
    hij
    klmnopqrs
    tuvwxy
    

    教科書p.90の strlen 関数を使います.
  4. トランプの全カード表示

    全52枚のトランプのカードを重複なくランダムに表示するプログラムを作成しましょう

    以下の配列を使用します.

    	int card[52];
    	char suite[4][9] = {"Spades", "Hearts", "Diamonds", "Clubs"};
    	char mark[13][3] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
    

    1行にカード5枚で文字の揃え方にも注意しましょう.

     7 of Clubs     J of Hearts    J of Diamonds 10 of Diamonds  8 of Spades   
     4 of Clubs     Q of Hearts   10 of Hearts    9 of Diamonds  A of Spades   
     4 of Spades    J of Clubs     2 of Diamonds  8 of Diamonds  Q of Clubs    
     K of Clubs     5 of Clubs     5 of Diamonds  3 of Hearts    6 of Spades   
     2 of Clubs     2 of Spades    K of Diamonds  7 of Hearts    5 of Spades   
     9 of Hearts    K of Spades    6 of Hearts    3 of Clubs     3 of Spades   
     8 of Clubs     4 of Hearts    5 of Hearts    7 of Spades   10 of Clubs    
     9 of Clubs     A of Diamonds  J of Spades    3 of Diamonds  A of Hearts   
     A of Clubs     7 of Diamonds  4 of Diamonds 10 of Spades    K of Hearts   
     Q of Diamonds  9 of Spades    2 of Hearts    6 of Clubs     8 of Hearts   
     6 of Diamonds  Q of Spades   
    

    まずは0から51までの数を配列 card に代入して準備します.そして,その数の並びをランダムに変えることを行って,カード表示はそのランダムな数列を用いて行えばできます.
  5. 文字検索

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

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

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

    Key letter: s
    Arsenal Sanfrecce
    


Back to text page