본문 바로가기
프로그래밍/C&C++

[C++]C++ strcmp로 문자열 비교 사용법

by wyatti 2023. 5. 23.

C++ strcmp 함수는 두 문자열을 비교할 때 다음과 같은 방식으로 작동합니다. 첫 번째 문자부터 비교를 시작하며, 두 문자의 ASCII 값이 같은지 확인합니다. 두 문자의 값이 같으면 다음 문자를 비교하고, 다른 경우 해당 문자의 ASCII 값 차이를 반환합니다. 두 문자열이 완전히 동일한 경우, 0을 반환합니다.
strcmp

C++에서 strcmp 함수는 두 문자열을 비교하는 데 사용되는 함수입니다. 문자열 비교는 프로그래밍에서 자주 필요한 작업 중 하나이며, strcmp 함수는 이를 수행하기 위한 기본적인 함수입니다. 이 함수는 두 개의 문자열을 인자로 받아 내용을 비교하고, 그 결과에 따라 정수 값을 반환합니다.

 

 

 

 

C++ strcmp 구문

strcmp 함수는 두 문자열을 비교할 때 다음과 같은 방식으로 작동합니다. 첫 번째 문자부터 비교를 시작하며, 두 문자의 ASCII 값이 같은지 확인합니다. 두 문자의 값이 같으면 다음 문자를 비교하고, 다른 경우 해당 문자의 ASCII 값 차이를 반환합니다. 두 문자열이 완전히 동일한 경우, 0을 반환합니다.

 

strcmp 함수는 C++의 문자열 비교를 위한 함수입니다. 이 함수는 두 개의 문자열을 비교하고 그 결과에 따라 정수 값을 반환합니다. 여기서는 strcmp 함수의 구문을 자세히 설명하겠습니다.

 

strcmp 함수의 구문은 다음과 같습니다.

#include <cstring>

int strcmp(const char* str1, const char* str2);

위의 구문에서 str1과 str2는 비교할 문자열의 포인터입니다. 이 함수는 str1과 str2를 비교하여 그 결과를 정수 값으로 반환합니다.

 

strcmp 함수의 동작 방식은 다음과 같습니다.

  1. str1과 str2의 첫 번째 문자부터 비교를 시작합니다.
  2. 두 문자의 ASCII 값이 같은지 비교합니다.
  3. 만약 두 문자의 ASCII 값이 다르다면, 그 차이를 나타내는 정수 값을 반환합니다.
  4. 두 문자열이 동일하다면, 0을 반환합니다.
  5. 비교가 끝나지 않았거나, 두 문자열 중 하나가 끝에 도달하지 않았다면, 나머지 문자들도 비교합니다.
  6. 모든 문자가 동일하다면, 0을 반환합니다.

 

 

 

C++ strcmp 사용법 예제 3가지

예제1

#include <iostream>
#include <cstring>

int main() {
    const char* str1 = "apple";
    const char* str2 = "banana";
    
    int result = strcmp(str1, str2);
    
    if (result < 0) {
        std::cout << "str1 is less than str2" << std::endl;
    } else if (result > 0) {
        std::cout << "str1 is greater than str2" << std::endl;
    } else {
        std::cout << "str1 is equal to str2" << std::endl;
    }
    
    return 0;
}

위의 예제는 "apple"과 "banana" 두 문자열을 strcmp 함수로 비교합니다. strcmp 함수는 첫 번째 비교하는 문자에서부터 차례로 비교하므로, 'a'와 'b'를 비교하여 ASCII 값의 차이인 -1을 반환합니다. 결과로 "str1 is less than str2"가 출력됩니다.

 

 

 

예제2

#include <iostream>
#include <cstring>

int main() {
    const char* str1 = "hello";
    const char* str2 = "hello";
    
    int result = strcmp(str1, str2);
    
    if (result < 0) {
        std::cout << "str1 is less than str2" << std::endl;
    } else if (result > 0) {
        std::cout << "str1 is greater than str2" << std::endl;
    } else {
        std::cout << "str1 is equal to str2" << std::endl;
    }
    
    return 0;
}

위의 예제는 "hello"와 "hello" 두 문자열을 strcmp 함수로 비교합니다. 두 문자열이 완전히 동일하므로, strcmp 함수는 0을 반환합니다. 결과로 "str1 is equal to str2"가 출력됩니다.

 

 

 

예제3

#include <iostream>
#include <cstring>

int main() {
    const char* str1 = "programming";
    const char* str2 = "program";
    
    int result = strcmp(str1, str2);
    
    if (result < 0) {
        std::cout << "str1 is less than str2" << std::endl;
    } else if (result > 0) {
        std::cout << "str1 is greater than str2" << std::endl;
    } else {
        std::cout << "str1 is equal to str2" << std::endl;
    }
    
    return 0;
}

위의 예제는 "programming"과 "program" 두 문자열을 strcmp 함수로 비교합니다. "program"이 "programming"보다 짧으므로, strcmp 함수는 길이가 더 긴 문자열 "programming"을 기준으로 비교합니다. 첫 번째 비교에서 'm'과 '\0'를 비교하게 되는데, '\0'은 문자열의 종료를 나타내는 널 문자입니다. 따라서, strcmp 함수는 "programming"이 "program"보다 크다는 것을 나타내는 양수 값을 반환합니다. 결과로 "str1 is greater than str2"가 출력됩니다.

 

위의 예제에서는 strcmp 함수를 사용하여 다양한 상황에서 문자열을 비교하였습니다. strcmp 함수의 반환값을 기준으로 비교 결과를 판단할 수 있으며, 이를 통해 두 문자열이 작은지, 큰지, 같은지를 확인할 수 있습니다.

 

 

 

C++의 strcmp 함수는 두 문자열을 비교하여 비교 결과에 따른 정수 값을 반환합니다. 이를 통해 문자열을 비교하여 동일한지, 작은지, 큰지를 판단할 수 있습니다. strcmp 함수는 문자열 처리에 있어서 핵심적인 역할을 수행하며, 문자열 비교 작업을 간편하게 처리할 수 있는 도구로 사용됩니다.

댓글