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가 암시적 유형 변환을 거치기 때문에 일반적으로 string("abc") == "abc"를 사용할 수 있습니다. .
두 문자열을 비교하기 위해 ==를 어떻게 사용하는지 물어봐도 될까요? 코드 예제가 있나요?