ページ 1 / 1
英単語をソート
Posted: 2007年5月05日(土) 18:39
by toku
英単語が複数あるファイルから読み込んでソートするプログラムを作っています。
ですがその際に関数strcmpやstrcpyを使うよう指定されたのですが、
ソートプログラムのどこに何のために盛り込めばいいのでしょうか?
Re:英単語をソート
Posted: 2007年5月05日(土) 19:22
by miyaza
ファイルから英単語を読み込んでその単語をソートするためには、単語を比べて並べ替えなければなりません。
その比べるときにstrcmp()関数を使います。
strcmp(str1,str2)
としたとき戻り値が正の数ならstr1の方がstr2よりも大きいということになります。
負の数ならstr2の方が大きいということになります。
0なら同じです。
strcpy()は文字列のコピーです。単語の入れ替え部分で使用します。
Re:英単語をソート
Posted: 2007年5月05日(土) 20:46
by toku
ありがとうございます!
つまり文字数の少ない単語からソートするようにという指示なのでしょうか?
Re:英単語をソート
Posted: 2007年5月05日(土) 21:01
by box
strcmp()を使うということは、おそらく、
辞書に出てくる順序にソートする、ということでありましょう。
単語の文字数は関係ないと思います。
Re:英単語をソート
Posted: 2007年5月05日(土) 21:02
by miyaza
>つまり文字数の少ない単語からソートするようにという指示なのでしょうか?
strcmp()が比べるのは文字数ではありません。
strcmp()はstr1とstr2を辞書式の順序で比較します。
つまり、ABとACという文字列がありstrcmp("AB","AC")としたとき戻り値は正の数になります。
アルファベット順もしくはその逆に並び替えろという指示ではないでしょうか。
strcmp()などの関数については、調べれて見れれば詳しく書いてあります。
Re:英単語をソート
Posted: 2007年5月06日(日) 01:18
by toku
ありがとうございます!
友人の助けもあってなんとか解決できました。
考え方の根底を間違えていたようです。
strcmpはアルファベットの順序を認識している関数なんですね^^;
本当にありがとうございます♪