-2
爲了比較strcmp()
函數中的兩個字符串,我使用了fgets()
和cin
中的一個輸入字符串,並在函數中給出另一個字符串作爲默認參數。但是,當我通過strcmp()
比較它們時,功能輸出不匹配。輸出與c中的strcmp()函數不匹配
char a[20];
int b;
cin>>a;
b=strcmp(a,"ab");
cout<<b;
其中i取輸入a
作爲ab
和b
的值是0,這是完全fine.But當對於相同的輸入取由fgets()
然後strcmp()
輸出不與以前相同。
char a[20];
int b;
fgets(a,sizeof(a),stdin);
b=strcmp(a,"ab");
cout<<b;
其中a
的價值是ab
和b
的值是1。爲什麼呢?是一個編譯器問題還是別的?
這不是一個編譯器問題。問題在於你沒有更仔細地閱讀文檔。 [fgets函數文檔](http://en.cppreference.com/w/c/io/fgets)。你認爲第二個參數有什麼作用? – PaulMcKenzie
'fgets'和'cin >> a'不會導致相同的字符串。請閱讀_both_的文檔以更好地瞭解他們的工作。 –
@PaulMcKenzie as str將包含該換行符,因此它給出值1.是不是? –