64,642
社区成员
发帖
与我相关
我的任务
分享
#include"stdio.h"
char *strcmp(char *s1,char *s2)
{
int i,j;
for(i=0;s1[i]==s2[i];i++)
if(s1[i]=='\0'&&s2[i]=='\0')
return 0;
if(s1[i]>s2[i])
return 1;
return -1;
}
void main()
{
char s1[50];
char s2[50];
int compare;
printf("\nPlease input string(1):");
gets(s1);
printf("\nPlease input string(2):");
gets(s2);
compare=strcmp(s1,s2);
printf("\nString(1):%s",s1);
printf("\nString(2):%s",s2);
printf("\nCompare result:");
switch(compare)
{
case 0:
printf("\nString(1)=String(2)\n");
break;
case 1:
printf("\nString(1)>String(2)\n");
break;
case -1:
printf("\nString(1)<String(2)\n");
break;
}
}
完整的都给你吧。
int __cdecl strcmp (const char * src,const char * dst)
{
int ret = 0 ;
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst && *src)
++src, ++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
char *strcmp(char *s1,char *s2)
{
int i,j;
for(i=0;s1[i]==s2[i];i++)
if(s1[i]=='\0'&&s2[i]=='\0')
return 0;
if(s1[i]>s2[i])
return 1;
return -1;
}
int MyStrcmp(const char *src, const char *dst)
{
while (*(src++) == *(dst++)) //因为后++ 优先于*
{
}
if (*(--src) < *(--dst))
{
return -1;
}
else if (*(--src) > *(--dst)) //所以这里要先指针回溯一步
{
return 1;
}
else
{
return 0;
}
}
int __cdecl strcmp (const char *src, const char *dst)
{
int ret = 0 ;
while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
{
++src;
++dst;
}
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}