-2
strcmp()
関数で2つの文字列を比較するには、入力文字列をfgets()
とcin
で行い、別の関数をデフォルト引数として与えました。しかし、私がstrcmp()
funtionの出力でそれらを比較すると一致しません。 iはab
として入力a
とb
の値をとる出力がcのstrcmp()関数と一致しません
char a[20];
int b;
cin>>a;
b=strcmp(a,"ab");
cout<<b;
は同じ入力に対してfgets()
によって取られたとき完全にfine.But次いでstrcmp()
出力は以前と同じではありませんどの0です。 a
の値がab
で、b
の値が1であるのはなぜ
char a[20];
int b;
fgets(a,sizeof(a),stdin);
b=strcmp(a,"ab");
cout<<b;
?それはコンパイラの問題なのでしょうか?
コンパイラの問題ではありません。問題は、あなたがドキュメントをもっと詳しく読まなかったことです。 [fgets関数ドキュメント](http://en.cppreference.com/w/c/io/fgets) 2番目のパラメータは何をしていると思いますか? – PaulMcKenzie
'fgets'と' cin >> a'は同じ文字列になりません。彼らが何をするのかをよりよく理解するために_both_のドキュメントをお読みください。 –
@PaulMcKenzieはstrとしてその改行文字を含むので、値1を与えますか? –