strcmp() 함수는 내장 라이브러리 함수이며 "string.h" 헤더 파일에 선언되어 있습니다. 이 함수는 문자열 인수를 비교하는 데 사용됩니다. 사전순으로 문자열을 비교하므로 두 문자열을 문자별로 비교합니다. 두 문자열의 문자가 같거나 NULL 문자를 찾을 때까지 문자열의 맨 처음 문자를 비교하기 시작합니다.
두 문자열의 첫 번째 문자가 같으면 두 번째 문자 등을 검사합니다. 이 프로세스는 NULL 문자를 찾거나 두 문자가 같지 않을 때까지 계속됩니다.
다음은 C 언어의 strcmp() 구문입니다.
int strcmp(const char *leftStr, const char *rightStr );
이 함수는 비교를 기반으로 다음 세 가지 다른 값을 반환합니다.
1.0(0) - 두 문자열이 동일하면 0을 반환합니다. 두 문자열의 모든 문자는 동일합니다.
다음은 C 언어에서 두 문자열이 동일한 경우 strcmp()의 예입니다.
예시
#include<stdio.h> #include<string.h> int main() { char str1[] = "Tom!"; char str2[] = "Tom!"; int result = strcmp(str1, str2); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
출력
Strings are equal Value returned by strcmp() is: 0
2.0보다 큼(>0) - 왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 큰 ASCII 값을 가질 때 0보다 큰 값을 반환합니다.
다음은 C 언어에서 0보다 큰 값을 반환할 때 strcmp()의 예입니다.
예시
#include<stdio.h> #include<string.h> int main() { char str1[] = "hello World!"; char str2[] = "Hello World!"; int result = strcmp(str1, str2); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
출력
Strings are unequal Value returned by strcmp() is: 32
3.0보다 작음(<0) - 왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 작은 ASCII 값을 가질 경우 0보다 작은 값을 반환합니다.
다음은 C 언어의 strcmp() 예제입니다.
예시
#include<stdio.h> #include<string.h> int main() { char leftStr[] = "Hello World!"; char rightStr[] = "hello World!"; int result = strcmp(leftStr, rightStr); if (result==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , result); return 0; }
출력
Strings are unequal Value returned by strcmp() is: -32