(16−1)[C] 練習問題:文字列

[ トップ | 目次 | 前ページ | 次ページ ]


論理積を用いたstringCompare関数の定義

二つの条件式e1とe2の論理積(すなわち両方が成り立つ時のみ真となる式)は

(e1 && e2)

と書く.stringCompare関数を,論理積演算子を用いたコードに書き直せ.

大文字小文字の違いを無視して文字列を比較する関数

英字を小文字に変換する関数toLower を定義し,それを使って,大文字小文字の違いを無視して文字列を比較する関数を書き直せ,

文字列を辞書式順序で比較する関数

辞書式順序S1 < S2とは,以下のように定義された順序関係である.

  1. S1の先頭文字がS2の先頭文字より小さければ,S1 < S2である.
  2. S1の先頭文字がS2の先頭文字より大きければ,S2 < S2である.
  3. S1の先頭文字とS2の先頭文字が同一の場合は,2文字目以降の文字列を比較した結果を比較の結果とする.

ただし,'\0'を含めて考え,'\0'は全ての文字より小さい.与えられた2つの文字列S1とS2を比較し,

  1. S1 < S2なら-1
  2. S1 = S2なら0
  3. S1 > S2なら-1

を返す関数

int strComp(char *S1, char *S2)

を定義せよ.

文字列の置き換え

文字列S1の中の文字Cを別の文字列S1で置き換えて得られる文字列を結果を格納する領域resultに返す関数.

int substitute(char result[], char *S1, char c, char *S2)

を定義せよ.結果は,置き換えによって得られた文字列の大きさとする.

解答例


[ トップ | 目次 | 前ページ | 次ページ ]