본문 바로가기
IT/c언어

C 언어 strcmp strncmp 함수

by 뉴코딩맨 2023. 7. 18.
C 언어에서는 문자열을 비교하는 데에 사용되는 strcmp와 strncmp 함수가 있습니다. strcmp와 strncmp 함수의 사용 방법과 예제에 대해 알아보겠습니다.
 
 

strcmp 함수

strcmp 함수는 두 개의 문자열을 비교하여 같은 경우 0을 반환하고, 첫 번째 문자열이 두 번째 문자열보다 작은 경우 음수를, 큰 경우 양수를 반환하는 함수입니다. 다음은 strcmp 함수의 사용 예제입니다.
 
#include <stdio.h>
#include <string.h>

int main() {
   char str1[] = "apple";
   char str2[] = "orange";
   
   int result = strcmp(str1, str2);

   if (result == 0) {
      printf("두 문자열은 같습니다.\n");
   } else if (result < 0) {
      printf("첫 번째 문자열이 두 번째 문자열보다 작습니다.\n");
   } else {
      printf("첫 번째 문자열이 두 번째 문자열보다 큽니다.\n");
   }

   return 0;
}
 
위의 예제에서 strcmp 함수는 str1과 str2를 비교하여, 첫 번째 문자열인 "apple"이 두 번째 문자열인 "orange"보다 작으므로 음수를 반환합니다. 따라서 "첫 번째 문자열이 두 번째 문자열보다 작습니다."가 출력됩니다.
 
strcmp 함수의 형식은 다음과 같습니다.
 
int strcmp(const char* str1, const char* str2);
 
 
str1과 str2는 비교할 두 문자열을 가리키는 포인터입니다. strcmp 함수는 비교 결과에 따라 0, 음수, 양수를 반환합니다.
 
 

strncmp 함수

strncmp 함수는 strcmp 함수와 유사하지만, 최대 비교 문자 개수를 지정할 수 있습니다. 다음은 strncmp 함수의 사용 예제입니다.
 
#include <stdio.h>
#include <string.h>

int main() {
   char str1[] = "apple";
   char str2[] = "appetizer";
   
   int result = strncmp(str1, str2, 4);

   if (result == 0) {
      printf("두 문자열은 같습니다.\n");
   } else if (result < 0) {
      printf("첫 번째 문자열이 두 번째 문자열보다 작습니다.\n");
   } else {
      printf("첫 번째 문자열이 두 번째 문자열보다 큽니다.\n");
   }

   return 0;
}
 
위의 예제에서 strncmp 함수는 str1과 str2의 처음 4개 문자를 비교하여 같으므로 0을 반환합니다. 따라서 "두 문자열은 같습니다."가 출력됩니다.
 
strncmp 함수의 형식은 다음과 같습니다.
 
int strncmp(const char* str1, const char* str2, size_t num);
 
str1과 str2는 비교할 두 문자열을 가리키는 포인터이고, num은 최대 비교 문자 개수를 지정합니다. strncmp 함수는 비교 결과에 따라 0, 음수, 양수를 반환합니다.
 

결론

C 언어에서의 strcmp와 strncmp 함수는 문자열을 비교하는 데에 사용되는 함수입니다. strcmp 함수는 두 개의 문자열을 전체적으로 비교하며, strncmp 함수는 최대 비교 문자 개수를 지정하여 문자열을 비교합니다.
 

'IT > c언어' 카테고리의 다른 글

C 언어 구조체 (Structure)  (0) 2023.07.18
C 언어 atoi atof 함수  (0) 2023.07.18
C 언어 strcat strncat 함수  (0) 2023.07.18
C 언어 strcpy strncpy 함수  (0) 2023.07.17
C 언어 strlen 함수  (0) 2023.07.17

댓글