C 언어의 헤더 파일에는 유용하고 일반적으로 사용되는 문자열 조작 기능이 포함된 표준 문자열 라이브러리가 포함되어 있습니다. 이번 포스팅에서는 C언어에서 문자열을 비교하는 방법에 대해 알아보겠습니다. strcmp().
C에서 strcmp()란 무엇입니까?
C strcmp()는 문자열 비교에 사용되는 내장 라이브러리 함수입니다. 이 함수는 두 개의 문자열(문자 배열)을 인수로 사용합니다. 이 두 문자열을 사전순으로 비교합니다. , 그런 다음 결과로 0,1 또는 -1을 반환합니다. 내부에 정의되어 있습니다. 프로토타입이 포함된 헤더 파일은 다음과 같습니다.
C의 strcmp() 구문
strcmp( first_str , second_str );>
C의 strcmp() 매개변수
이 함수는 두 개의 문자열(문자 배열)을 매개변수로 사용합니다.
- first_str: 첫 번째 문자열은 상수 문자(즉, 변경할 수 없는 문자열)에 대한 포인터로 사용됩니다. second_str: 두 번째 문자열은 상수 문자에 대한 포인터로 사용됩니다.
메모: 인수가 char * 대신 const char *로 사용되는 이유는 함수가 문자열을 수정하고 상수 문자열에 적용할 수 없도록 하기 위함입니다.
C에서 strcmp()의 반환 값
strcmp() 함수는 두 문자열을 비교한 후 다음과 같은 세 가지 다른 값을 반환합니다.
1. 제로 ( 0 )
두 문자열이 모두 동일한 것으로 확인되면 값은 0입니다. 그건, 두 문자열의 모든 문자는 동일합니다.
2. 0보다 큼(> 0 )
0보다 큰 값이 반환되는 경우 first_str에서 일치하지 않는 첫 번째 문자의 ASCII 값이 더 큽니다. second_str의 해당 문자보다 또는 first_str의 문자가 사전순으로 second_str의 문자 뒤에 오면 0이 반환된다고 말할 수도 있습니다.
3. 0보다 작음(<0)
0보다 작은 값이 반환되는 경우 first_str에서 일치하지 않는 첫 번째 문자의 ASCII 값이 더 작습니다. ~보다 second_str의 해당 문자 . 또한 first_str의 문자가 사전순으로 second_str의 문자 앞에 있으면 0이 반환된다고 말할 수도 있습니다.
ASCII 값에 대한 자세한 내용은 이 문서를 참조하세요. ASCII 테이블
C에서 strcmp() 함수를 사용하는 방법
다음 예에서는 C에서 strcmp() 함수를 사용하는 방법을 보여줍니다.
씨
// C Program to Demonstrate the use of strcmp() function> #include> #include> int> main()> {> > // declaring two same string> > char> * first_str => 'Geeks'> ;> > char> * second_str => 'Geeks'> ;> > // printing the strings> > printf> (> 'First String: %s
'> , first_str);> > printf> (> 'Second String: %s
'> , second_str);> > // printing the return value of the strcmp()> > printf> (> 'Return value of strcmp(): %d'> ,> > strcmp> (first_str, second_str));> > return> 0;> }> |
숨겨진 앱
>
>산출
First String: Geeks Second String: Geeks Return value of strcmp(): 0>
C의 strcmp()는 어떻게 작동합니까?
C strcmp() 함수는 다음을 비교하여 작동합니다. 두 개의 문자열을 사전순으로 . 이는 일치하지 않는 값이 발견되거나 NULL 문자가 발견될 때까지 각 문자의 ASCII 값을 비교한다는 의미입니다. C strcmp() 함수의 작동은 다음과 같이 설명될 수 있습니다.
1. 두 문자열의 첫 번째 문자에 대한 ASCII 값을 비교하는 것으로 시작됩니다.
2. 두 문자열의 첫 번째 문자가 동일하면 이 함수는 두 번째 문자를 확인하고, 또한 같으면 세 번째 문자를 확인하는 식으로, 일치하지 않는 첫 번째 문자가 발견되거나 NULL 문자가 발견될 때까지 계속됩니다.
삼. 만약 NULL 문자가 발견되었습니다 , 함수 0을 반환합니다. 두 문자열이 모두 동일하기 때문입니다.

4. 일치하지 않는 문자가 발견되면
- 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열의 문자 값보다 크면 양수 차이( > 0 )가 ASCII 값 사이에 반환됩니다.

- 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열의 문자 값보다 작으면 음수 차이( < 0 )가 ASCII 값 사이에 반환됩니다.

이 세 가지 사례는 모두 아래 예에서 설명됩니다.
C의 strcmp() 예
예 1. 동일한 문자열에 대한 strcmp() 동작
이 프로그램은 동일한 문자열에 대한 strcmp() 함수의 동작을 보여줍니다.
씨
자바의 선택 정렬
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > > char> first_str[] => 'g f g'> ;> > char> second_str[] => 'g f g'> ;> > > // Using strcmp()> > int> res => strcmp> (first_str, second_str);> > > if> (res==0)> > printf> (> 'Strings are equal'> );> > else> > printf> (> 'Strings are unequal'> );> > > printf> (> '
Value returned by strcmp() is: %d'> , res);> > return> 0;> }> |
>
>산출
Strings are equal Value returned by strcmp() is: 0>
예 2. 사전순으로 더 큰 첫 번째 문자열에 대한 strcmp() 동작
아래 예는 사전순으로 더 큰 첫 번째 문자열에 대한 strcmp() 함수 동작을 보여줍니다.
씨
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > // z has greater ASCII value than g> > char> first_str[] => 'zfz'> ;> > char> second_str[] => 'gfg'> ;> > > int> res => strcmp> (first_str, second_str);> > > if> (res==0)> > printf> (> 'Strings are equal'> );> > else> > printf> (> 'Strings are unequal'> );> > > printf> (> '
Value of result: %d'> , res);> > > return> 0;> }> |
리눅스에서 내보내기 란 무엇입니까?
>
>산출
Strings are unequal Value of result: 19>
예 3. 사전순으로 더 작은 첫 번째 문자열에 대한 strcmp() 동작.
아래 예는 사전순으로 더 작은 첫 번째 문자열에 대한 strcmp() 함수 동작을 보여줍니다.
씨
파이썬 프로그램 예제
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > // b has less ASCII value than g> > char> first_str[] => 'bfb'> ;> > char> second_str[] => 'gfg'> ;> > > int> res => strcmp> (first_str, second_str);> > > if> (res==0)> > printf> (> 'Strings are equal'> );> > else> > printf> (> 'Strings are unequal'> );> > > printf> (> '
Value returned by strcmp() is: %d'> , res);> > > > return> 0;> }> |
>
>산출
Strings are unequal Value returned by strcmp() is: -5>
결론
이 기사에서는 다음에 대해 논의했습니다. C 표준 라이브러리 함수 strcmp() 두 문자열을 사전순으로 비교하는 데 사용됩니다. 표준 라이브러리에는 필요할 때 자주 사용되는 함수를 반복해서 다시 작성하는 것을 방지하므로 프로그래밍을 더 쉽게 해주는 유용하고 자주 사용되는 함수가 포함되어 있습니다.
C의 strcmp()에 대한 FAQ
1. C에서 두 문자열을 어떻게 비교할 수 있나요?
연령: 헤더 파일 내부에 정의된 strcmp() 함수를 사용하여 두 문자열(문자 배열)을 사전순으로 비교할 수 있습니다.
2. C에서 strcmp()의 함수 프로토타입은 무엇입니까?
연령: strcmp() 함수의 함수 프로토타입은 다음과 같습니다.
int strcmp(const char* lhs , const char* rhs );>
3. strcmp() 함수가 0을 반환할 때?
연령: strcmp() 함수는 두 문자열이 동일할 때 0을 반환합니다.
4. strcmp() 함수의 양수 반환 값은 무엇을 의미합니까?
연령: strcmp() 함수는 첫 번째 문자열이 두 번째 문자열보다 사전순으로 큰 경우 양수 값을 반환합니다.
5. strcmp() 함수의 음수 반환 값은 무엇을 의미합니까?
연령: strcmp() 함수가 반환하는 음수 값은 첫 번째 문자열이 두 번째 문자열보다 사전순으로 작다는 것을 의미합니다.
6. strcmp() 함수는 C에서 두 문자열을 어떻게 비교합니까?
연령: strcmp() 함수는 일치하지 않는 문자나 NULL 문자가 발견될 때까지 두 문자열의 각 문자에 대한 ASCII 값을 비교합니다.
7. C에서 문자열이 아닌 데이터 유형을 비교하는 데 strcmp() 함수를 사용할 수 있습니까?
연령: 아니요, strcmp() 함수는 C에서 문자열이 아닌 데이터 유형을 비교할 수 없습니다. NULL 문자로 끝나는 변경 가능하거나 변경 불가능한 문자열 데이터 유형만 비교할 수 있습니다.
관련 기사:
- C의 문자열
- C/C++에서 일반적으로 사용되는 문자열 함수(예제 포함)