티스토리 뷰


strcmp(), stricmp() 함수


> strcmp(), stricmp() Function

int strcmp( const char * string1, const char *string2 );

int stricmp( const char * string1, const char *string2 );


string1 : NULL로 끝나는 비교할 문자열의 포인터

string2 : NULL로 끝나는 비교할 문자열의 포인터


반환값 :

     -1 : string1 문자열이 string2 문자열보다 작은(<) 경우

      0 : string1 문자열이 string2 문자열과 같은 경우

      1 : string1 문자열이 string2 문자열보다 큰(>) 경우



strncmp(), strnicmp() 함수


> strncmp(), strnicmp() Function

int strncmp( const char * string1, const char *string2, size_t count );

int strnicmp( const char * string1, const char *string2 size_t count );


string1 : NULL로 끝나는 비교할 문자열의 포인터

string2 : NULL로 끝나는 비교할 문자열의 포인터

count  : 비교할 문자의 수(size_t는 unsigned integer)


반환값 :

     -1 : string1 문자열이 string2 문자열보다 작은(<) 경우

      0 : string1 문자열이 string2 문자열과 같은 경우

      1 : string1 문자열이 string2 문자열보다 큰(>) 경우



대소문자를 구분하지 않고 문자열을 비교할 경우 stricmp, strnicmp함수를 사용합니다.



strcmp(), stricmp() 함수를 사용할 때 주의해야 할 점


* strcmp(), stricmp() 함수를 사용할 때 주의해야 할 점


1. 문자열을 비교할 때는 반드시 NULL로 종료되어야 합니다ㅣ.

위 두 함수는 2개의 문자열을 NULL문자까지 비교하기 때문에 반드시 2개의 문자열이 NULL로 종결되어야 합니다.


2. 초기화가 되지 않은 포인터에 대해서 strcmp(), stricmp() 함수를 사용하면 안됩니다.




strncmp(), strnicmp() 함수를 사용할 때 주의해야 할 점

* strncmp(), strnicmp() 함수를 사용할 때 주의해야 할 점

1. 문자열을 비교할 때 지정된 크기만큼만 비교하므로 그 크기를 정확하게 사용해야 합니다.

크기가 정확하지 않은 경우 다른 메모리 번지를 침범하게 되어 프로그램이 오동작할 수 있습니다.

댓글