문자열 함수 구현(int strcmp(char *s1, char*s2)

2010. 3. 30. 17:462010년/연습문제


#include<string.h>안에 있는  함수가 많다 그중  int strcmp()함수를 내가 구현해보았다.

#include<stdio.h>
int
  sys_strcmp(char *s1,  char *s2);
int main()
{
  char stringA[80];
  char stringB[80];
  gets(stringA);
  gets(stringB);
  printf("compare  string: %d\n",sys_strcmp(stringA,stringB));
  return  0;
}
int  sys_strcmp(char * s1, char * s2)
{
  int inum;
  while(1)
  {
    if(*s1>*s2)
    {
      inum=1;
      break;
    }
    else if(*s1<*s2)
    {
      inum=-1;
      break;
    }
    else if(*s1==*s2)
    {  
      if(*s1!='\0'&&*s2=='\0')
      {
        inum=1;
        break;
      }
      else  if(*s1=='\0'&&*s2!='\0')
      {
        inum=-1;
        break;
      }
      else if(*s1!='\0'&&*s2!='\0')
      {
        s1++;
        s2++;
      }
      else
      {
        inum=0;
        break;
      }
    }        
  }  
  return  inum;
}

기본적으로  비교되는 stringA와 stringB를 비교해서 사전상의  두안에 char가 stringA가 크면 1 작으면 -1 같으면 0을   출력한다.