logo

C strcmp()

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을 반환합니다. 두 문자열이 모두 동일하기 때문입니다.

반환값이 0인 strcmp

4. 일치하지 않는 문자가 발견되면

  • 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열의 문자 값보다 크면 양수 차이( > 0 )가 ASCII 값 사이에 반환됩니다.
양수 반환 값을 갖는 strcmp
  • 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열의 문자 값보다 작으면 음수 차이( < 0 )가 ASCII 값 사이에 반환됩니다.
음수 반환 값을 갖는 strcmp

이 세 가지 사례는 모두 아래 예에서 설명됩니다.

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++에서 일반적으로 사용되는 문자열 함수(예제 포함)