Backend/C

문자열 비교를 위한 strcmp

petitCoding 2012. 4. 12. 10:29

1 :  #include <stdio.h>
2 :  #include <string.h>

3 :  main(){
4 :   char str1[80], str2[80];
5 :   int x;

6 :   while(1){
7 :    printf("\n\nInput the first string, a blank to exit: ");
8 :    gets(str1);

9 :    if(strlen(str1) == 0)
10 :    break;

11 :   printf("\nInput the second string: ");
12 :   gets(str2);

13 :   x = strcmp(str1, str2);
14 :   printf("\nstrcmp(%s, %s) returns %d\n", str1, str2, x);
15 :  }

16 :  return 0;
17 : }

 

문자열의 내용이 동일한지 알아보기 위해 두 문자열을 비교해야 한다. 문자열이 동일하지 않다면 하나의 문자열은 다른 것보다 '크거나' 혹은 '작다'. 이렇게 '크거나' '작은' 상태를 결정하는 기준은 각 문자의 아스키 코드 값이다. 문자의 경우에는 알파벳 순서에 따라 크기가 정해진다.

strcmp 함수의 원형은 다음과 같다.

 

int strcmp(char *str1, char *str2);

 

인수 str1과 str2는 비교할 문자열에 대한 포인터이다. 함수의 복귀값은 str1이 str2보다 작으면 -1, 같으면 0, 크면 1이다.

 

결과화면