2016년 2월 23일 화요일

C언어 문자열 비교 : strcmp 함수

문자열을 비교하는 함수 strcmp 가 있다.
헤더는 include<string.h>
 
  •  strcmp(문자열 A, 문자열 B) 는 A와 B를 비교하는 것이다. 
    A>B 일때 양수
    A=B 일때 '0'
    A<B 일때 음수로 나온다.
 
이때 비교는 아스키 코드값으로 비교한다.
 만약 char A[4]: "abc" , char B[4] : "def" 면  A<B 이다.
 
#include<stdio.h>
int main()
{1
     char A[] = "Happy day";
     char B[] = "Happy day";
    
    if(A == B)
     {
         printf("두 문자열은 같다. \n");
      }
     else
      {
         printf("두 문자열은 같지 않다. \n");
       }
}
 
이렇게 되면 두 문자열은 같다고 나오지 않는다.
왜냐하면 if(A == B)는 주소값을 비교하는 것이기 때문이다.
문자열 A와 B는 주소값이 다르다.
 
그래서 문자열을 비교해주는 함수 strcmp가 필요한 것이다.
 
#include<stdio.h>
#include<string.h>
 
int main()
{
   char A[] = "Happy day";
   char B[] = "Happy day";
 
   if(strcmp(A,B) == 0)
   {
         printf("A와 B는 같은 문자열이다.\n");
    }
    else
           printf("A와 B는 같은 문자열이 아니다. \n");
}
 
이렇게 해야 같은 문자열이라는 경우가 나온다.

댓글 없음:

댓글 쓰기