strcmp

u010328107 2013-05-06 05:43:11
怎么编写代码来实现的strcmp的功能不使用strcmp
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010328107 2013-05-06
  • 打赏
  • 举报
回复
哦我懂了谢谢
u010328107 2013-05-06
  • 打赏
  • 举报
回复
for(i=0;s1[i]==s2[i];i++) if(s1[i]=='\0'&&s2[i]=='\0') 怎么理解?
老王爱上猫 2013-05-06
  • 打赏
  • 举报
回复
看源码呗,楼上好几个人都是用源码的....
truth34 2013-05-06
  • 打赏
  • 举报
回复
跟进CRT的strcmp代码,抄一份,改改。
折翼断JJ 2013-05-06
  • 打赏
  • 举报
回复
#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;
    }
}
完整的都给你吧。
derekrose 2013-05-06
  • 打赏
  • 举报
回复

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 );
}
折翼断JJ 2013-05-06
  • 打赏
  • 举报
回复

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;
}
Scorpiour 2013-05-06
  • 打赏
  • 举报
回复
[code=c/c++] int strcmp(const char* sa,const char* sb) { int rt=0; do { rt=*sa - *sb; sa++; sb++; }while(!rt&&(*sa&*sb)) return rt; } [/code]
疯狂的红豆 2013-05-06
  • 打赏
  • 举报
回复

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;
	}	
}
e3internet 2013-05-06
  • 打赏
  • 举报
回复
int strcmp(const char* str1, const char* str2) { int ret = 0; while(!(ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1) { str1++; str2++ } if (ret < 0) { return -1; } else if (ret > 0) { return 1; } return 0; }
图灵狗 2013-05-06
  • 打赏
  • 举报
回复

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 );
}

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧