strcmp, strncmp 문자열 비교 함수


C에서 문자열을 비교하는 함수가 있다.

바로 strcmp 와 ctrncmp이다.

함수의 리턴 값을 통해 문자열이 같은지 다른지 판단 할 수 있다.

문자열 길이 설정 여부에 따라 두 함수가 나누어 진다. 


strcmp 일반 문자열 비교


strcmp 사용법은 아래와 같다.

#include<string.h>

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

ex) 

int result = 0;

char * str1 = "hello world";

char * str2 = "hello world";

if( strcmp( str1, str2 ) == 0 )

{

    printf("두 문자열은 같다.");

}

else

{

    printf("두 문자열은 같지 않다.");

}


 리턴 값

 의 미 

 0 보다 큰 값

 str1이 str2보다 큰 경우 

 0

 str1과 str2 일치

 0 보다 작은 값

 str1이 str2보다 작은 경우 


두개의 문자열 str1, str2가 있다. 

비교함수인 strcmp를 사용하여 확인 해보니 리턴 값이 0이 나왔다.

0이 나왔기 때문에 "두 문자열은 같다." 라는 메시지가 출력 된다.

예제를 보며 결과를 확인해 보자.


[예제]

#include <stdio.h>

#include <string.h> //<--- strcmp 함수 사용을 위해 추가 한다. 


int main(int argc, char *argv[]) 

{


int result = 0;

char * str1 = "hello world";

char * str2 = "hello world";

if( strcmp( str1, str2 ) == 0 ) //<--- strcmp 결과 값이 0이면 두 문자열이 같고 그렇지 않으면 다르다.

{

    printf("두 문자열은 같다.");

}

else

{

    printf("두 문자열은 같지 않다.");

}


}



 실행 결과

 두 문자열은 같다.

 계속하려면 아무 키나 누르십시오...




strncmp 지정 된 길이만큼 문자열 비교


strncmp 사용법은 아래와 같다.

#include<string.h>

char * strncmp( const char * str1, const char * str2, size_t n )

ex) 

int result = 0;

char * str1 = "hello man";

char * str2 = "hello world";

if( strncmp( str1, str2, 5 ) == 0 )

{

    printf("두 문자열은 같다.");

}

else

{

    printf("두 문자열은 같지 않다.");

}


 리턴 값

 의 미 

 0 보다 큰 값

 str1이 str2보다 큰 경우 

 0

 str1과 str2 일치

 0 보다 작은 값

 str1이 str2보다 작은 경우 


두개의 문자열 str1, str2가 있다. 

비교함수인 strcmp를 사용하여 확인 해보니 리턴 값이 0이 나왔다.

0이 나왔기 때문에 "두 문자열은 같다." 라는 메시지가 출력 된다.

예제를 보며 결과를 확인해 보자.


[예제]

#include <stdio.h>

#include <string.h> //<--- strncmp 함수 사용을 위해 추가 한다. 


int main(int argc, char *argv[]) 

{


int result = 0;

char * str1 = "hello man";

char * str2 = "hello world";

if( strncmp( str1, str2, 5 ) == 0 ) //<--- strncmp 결과 값이 0이면 두 문자열이 같고 그렇지 않으면 다르다.

{

    printf("두 문자열은 일부 같다.");

}

else

{

    printf("두 문자열은 일부 같지 않다.");

}

}



 실행 결과

 두 문자열은 일부 같다.

 계속하려면 아무 키나 누르십시오...





반응형

+ Recent posts