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

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


int strcmp()함수에서 int n값을 받아서  int n은 몇번째 자리까지  비교하는것 이다

#include<stdio.h>
int
  sys_strncmp(char *s1,  char *s2,int  n);
int main()
{
  char stringA[80];
  char stringB[80];
  int inum;
  gets(stringA);
  gets(stringB);
  scanf("%d",&inum);
  printf("compare  string: %d\n",sys_strncmp(stringA,stringB,inum));
  return  0;
}
int  sys_strncmp(char * s1, char * s2,int n)
{
  int inum;
  int icnt=0;
  while(icnt<n)
  {
    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;
      }
    }
    icnt++;      
    inum=0;
  }  
  return  inum;
}