C言語 strlen 再入力を促す
文字列の比較で、
文字列の長さが60以上の時、再入力を促します。
while文を使って書いてみたのですが、
文字列Bの入力の前に、もう一度意味もなく
「文字列Aを入力===>」が表示されたり。
文字列Aのほうが小さいのに「Aのほうが大きい」と
表示されるようになったり、変な感じです。
どなたかご指摘・ご指導のほどよろしくお願いします。
int main(void)
{
char moji1[100];
char moji2[100];
while(strlen(moji1)>60){
printf("文字列Aを入力===>"); scanf("%80s" ,moji1);
}
while(strlen(moji2)>60){
printf("文字列Bを入力===>"); scanf("%80s" ,moji2);
}
if(compare(moji1,moji2)>0){
printf("===AはBより大きい===\n");
}
else if(compare(moji1, moji2)<0){
printf("===AはBより小さい===\n");
}
else if(compare(moji1, moji2)==0){
printf("===AとBは等しい===\n");
}
return 0;
}
int compare(char *x, char*y)
{
while(*x==*y && *x!=0){
x++;
y++;
}
return (*x-*y);
}
お礼
ありがとうございます! 参考になりました。