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