Example:
char alpha;
scanf("%c", &alpha);
if (strcmp(&alpha, "c") == 0) //if (alpha == 'c')
{
printf("same");
}
else
{
printf("different");
}
man page上的 description也没有讲具体
The strcmp() function compares the two strings s1 and s2. It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
我谷歌了, 但只找到了http://stackoverflow.com/ques... , c
部分感觉不是很详细, 想在这里请教下大家这两者实现机制的区别与效率
strcmp は、char* 型の文字列が等しいかどうかを判断するために使用されます。char* 文字列は、実際には文字列の最初のアドレスです。
そして == は左辺と右辺が等しいかどうかを直接決定します。 == を使用して char* 文字列を決定する場合、それは最初のアドレスの値を比較することと同じです。文字列は一貫しています。
std::string の場合、== 演算子がオーバーロードされているため、比較に == を直接使用できます。
さらに、std::string には const char* コンストラクターがあります。通常、string("abc") == "abc" を使用できます。これは、string の == 演算子と一致するときに、後続の abc が暗黙的な型変換を受けるためです。 。
聞いてもいいですか、== を使用して 2 つの文字列を比較するにはどうすればよいですか?コード例はありますか?