strcmp
is one of the few functions that has the reverse results of true and false...if the strings are equal, the result is 0, not 1 as you would think....
if (strcmp(a, b)) {
/* Do something here as the strings are not equal */
} else {
/* Strings are equal */
}
Speaking of fgets
, there is a likelihood that there is a newline attached to the end of the string...you need to get rid of it...
+-+-+-+--+--+
|b|o|b|
||
+-+-+-+--+--+
To get rid of the newline do this.
CAVEATS: Do not use "strlen(aName) - 1", because a line returned by fgets may start with the NUL character - thus the index into the buffer becomes -1:
aName[strcspn(aName, "
")] = '';
+-+-+-+--+
|b|o|b||
+-+-+-+--+
Now, strcmp
should return 0...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…