Visual Studio/C 기초

C언어 문자열 비교 [strcmp()]

낙락장송s 2013. 6. 17. 16:58

문자열의 내용이 동일한지 알아보기 위해 두 문자열을 비교해야 합니다.

문자열이 동일하지 않다면 하나의 문자열은 다른 것보다 크거나 혹은 작다는 것. 이렇게 크거나 작은 상태를 결정하는 기준은 각 문자의 ASCII 코드 값입니다.

모든 대문자가 소문자보다 "작다"는 이상하게 생각될 수 있는 한가지 예외 사항을 제외하고 알파벳 순서에 따라 크기가 정해집니다.

대문자의 ASCII 코드의 범위는 65부터 90이고, 소문자의 ASCII 코드의 범위는 97~122이므로 "ZEBRA"는 "apple"보다 작은 것으로 간주됩니다.

strcmp의 함수가 반환하는 값이 0보다 클 경우 : st1이 st2보다 크다.

0일 경우 : st1이 st2와 같다.

0보다 작을 경우 : st1이 st2보다 작다.

#include <stdio.h>
#include <string.h>
#define MAX 80

main(){
 char st1[MAX], st2[MAX];
 int x;

 while(1)
 {
  printf("첫번째 단어를 입력해주세요. 빈 칸을 입력하면 종료됩니다 : ");
  gets(st1);

  if(strlen(st1) ==0)
   break;

  printf("두번째 단어를 입력해주세요 : ");
  gets(st2);

  x = strcmp(st1,st2);
  printf("함수 strcmp(%s,%s)는 값 %d를 돌려줍니다.\n",st1,st2,x);
 }