Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C/C++에서 strncmp()와 strcmp()의 차이점

<시간/>

strncmp()

strncmp() 함수는 왼쪽 문자열과 오른쪽 문자열을 숫자까지 비교하는 데 사용됩니다. strcmp()와 동일하게 작동합니다. 왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 큰 ASCII 값을 가질 때 0보다 큰 값을 반환합니다. 왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 작은 ASCII 값을 가질 경우 0보다 작은 값을 반환합니다.

다음은 C 언어의 strncmp() 구문입니다.

int strncmp ( const char *leftString, const char *rightString, size_t number );

여기,

  • 왼쪽 문자열 − 오른쪽 문자열과 비교할 첫 번째 문자열입니다.

  • 오른쪽 문자열 − 첫 번째 문자열을 비교하는 데 사용되는 두 번째 문자열입니다.

  • 숫자 − 비교할 최대 문자 수입니다.

다음은 C 언어의 strncmp() 예제입니다.

예시

#include<stdio.h>
#include<string.h>

int main() {
   char str1[] = "blank";
   char str2[] = "Hello World!";
   int result = strncmp(str1, str2, 1);

   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: 26

strcmp()

strcmp() 함수는 내장 라이브러리 함수이며 "string.h" 헤더 파일에 선언되어 있습니다. 이 함수는 문자열 인수를 비교하는 데 사용됩니다. 사전순으로 문자열을 비교하므로 두 문자열을 문자별로 비교합니다. 두 문자열의 문자가 같거나 NULL 문자를 찾을 때까지 문자열의 맨 처음 문자를 비교하기 시작합니다.

두 문자열의 첫 번째 문자가 같으면 두 번째 문자 등을 검사합니다. 이 프로세스는 NULL 문자를 찾거나 두 문자가 모두 같지 않을 때까지 계속됩니다. 두 문자열이 동일한 경우 즉, 두 문자열에서 문자가 동일한 경우 0을 반환합니다.

왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 큰 ASCII 값을 가질 때 0보다 큰 값을 반환합니다. 왼쪽 문자열의 일치하는 문자가 오른쪽 문자열의 문자보다 작은 ASCII 값을 가질 경우 0보다 작은 값을 반환합니다.

다음은 C 언어의 strcmp() 구문입니다.

int strcmp(const char *leftString, const char *rightString );

여기,

  • 왼쪽 문자열 − 오른쪽 문자열과 비교할 첫 번째 문자열입니다.

  • rightString − 첫 번째 문자열을 비교하는 데 사용되는 두 번째 문자열입니다.

다음은 C 언어로 된 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