英単語をソート

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
toku

英単語をソート

#1

投稿記事 by toku » 18年前

英単語が複数あるファイルから読み込んでソートするプログラムを作っています。
ですがその際に関数strcmpやstrcpyを使うよう指定されたのですが、
ソートプログラムのどこに何のために盛り込めばいいのでしょうか?

miyaza

Re:英単語をソート

#2

投稿記事 by miyaza » 18年前

ファイルから英単語を読み込んでその単語をソートするためには、単語を比べて並べ替えなければなりません。
その比べるときにstrcmp()関数を使います。

strcmp(str1,str2)
としたとき戻り値が正の数ならstr1の方がstr2よりも大きいということになります。
負の数ならstr2の方が大きいということになります。
0なら同じです。


strcpy()は文字列のコピーです。単語の入れ替え部分で使用します。

toku

Re:英単語をソート

#3

投稿記事 by toku » 18年前

ありがとうございます!

つまり文字数の少ない単語からソートするようにという指示なのでしょうか?

box

Re:英単語をソート

#4

投稿記事 by box » 18年前

strcmp()を使うということは、おそらく、
辞書に出てくる順序にソートする、ということでありましょう。
単語の文字数は関係ないと思います。

miyaza

Re:英単語をソート

#5

投稿記事 by miyaza » 18年前

>つまり文字数の少ない単語からソートするようにという指示なのでしょうか?
strcmp()が比べるのは文字数ではありません。

strcmp()はstr1とstr2を辞書式の順序で比較します。
つまり、ABとACという文字列がありstrcmp("AB","AC")としたとき戻り値は正の数になります。

アルファベット順もしくはその逆に並び替えろという指示ではないでしょうか。

strcmp()などの関数については、調べれて見れれば詳しく書いてあります。

toku

Re:英単語をソート

#6

投稿記事 by toku » 18年前

ありがとうございます!
友人の助けもあってなんとか解決できました。
考え方の根底を間違えていたようです。
strcmpはアルファベットの順序を認識している関数なんですね^^;
本当にありがとうございます♪

閉鎖

“C言語何でも質問掲示板” へ戻る