2014-06-25 4 views
-2

코드는 다음과 같습니다비교 문자열()

#include <iostream> 

int main() { 
const char *str1{"Jill"}; 
const char *str2{"Jacko"}; 
int result{std::strcmp(str1, str2)}; 

if(result < 0) { 
std::cout << str1 << " is less than " << str2 << '.' << std::endl; 
} else if(result == 0) { 
std::cout << str1 << " is equal to " << str2 << '.' << std::endl; 
} else { 
std::cout << str1 << " is greater than " << str2 << '.' << std::endl; 
} 
return 0; 
} 

출력은 : 질은 바로 잭보다 더 크다.

내 초반 질문입니다 : 어떻게 Jill이 Jacko보다 큽니다를 확인하는 else 문 블록을 반환합니까? 문자열을 비교하기 위해 strcmp에서 어떤 메소드가 사용됩니까? 총 바이트 수는 어떤 문자이든간에?

+1

'나'> 'A'

그 때문에, 비교됩니다. –

+0

오, 나는 몰랐다. 이것은 C++을 배우기 위해 사용하고있는 책의 코드 예제 일뿐입니다. 감사! – RaymondTFR

+2

책을 버리고 알맞은 것을 얻으십시오 - strcmp는 C++가 아니라 C입니다. –

답변

3

먼저 'J'는 'J'와 비교되며, 동일합니다. 그런 다음 '난' 'A', 당신은`` 을 포함하는 것을 잊었다

Jill is greater than Jacko 
+0

오 이런! 알 겠어! 그래서 'ASCII'값을 기억해야한다는 뜻입니까? – RaymondTFR

+0

당신이 ASCII 문자라고 가정합니다. 일반적으로 컴파일러가 그렇게하도록합니다. 당신은'strcmp()'가 무엇을하는지 물었다. 그 밖의 문자열에는 무엇이 포함됩니까? –