「文字列(char 型配列)引数を 2 つ受け取り、辞書的に 1 つめが大きいなら’>’ を、辞書的に 2 つめが大きいなら ’<’ を、辞書的に等しい(同じ文字列)なら ’=’ を返す関数 strcompare() を作れ。」
上記のような関数を作るのが目的です。
以下、プログラムになります。
#include<stdio.h> #define SIZE 100 char strcompare(char a[],char b[]){ int i; for(i=0;a[i]!='\0' || b[i]!='\0';i++){ if(a[i]>b[i]){ return '>'; }else if(a[i]<b[i]){ return '<'; }else{ return '='; } } } int main(void){ char str1[SIZE], str2[SIZE]; scanf("%s", str1); scanf("%s", str2); printf("%c\n", strcompare(str1, str2)); return 0; }
main節の処理につては何ら問題ないのです。
関数の節の処理でなぜ「辞書的に」という条件を満たせるのかがわかりません。
私は勝手にif(a[i]>='a' && a[i]<='z')のようなコードかなと予想していたのですが違いました。
宜しくお願いいたします。
※辞書的にというとらえ方が間違ってる可能性もあるのでしょうか。
辞書的…アルファベット順??
回答3件
あなたの回答
tips
プレビュー