zoukankan      html  css  js  c++  java
  • strcmp函数的两种实现

    摘自http://www.iteye.com/topic/790388
    #include<stdio.h>
    
    int strcmp(const char *str1,const char *str2)
    {
    	/* 注释以下的五行(while循环)可以简写为:
    	 * for(;(*str1==*str2)&&*str1!='\0';str1++,str2++);
    	 *  */
    	while((*str1==*str2)&&*str1!='\0')
    	{
    		str1++;
    		str2++;
    	}
    
    	if(*str1=='\0'&&*str2=='\0') return 1;
    	else return -1;
    }
    
    int main()
    {
    	char *st1="abdefg";
    	char *st2="abcdefg";
    	printf("%d\n",strcmp(st1,st2));
    
    	char *st3="12345";
    	char *st4="12345";
    	printf("%d\n",strcmp(st3,st4));
    
    	return 0;
    }

    #include<stdio.h>
    
    int strcmp(const char *str1,const char *str2)
    {
    	while(str1!=NULL&&str2!=NULL)
    	{
    		while(*str1++==*str2++)
    		{
    			if(*str1=='\0'&&*str2=='\0') return 1;
    		}
    		
    		return -1; //不等的情况
    	}
    
    	return -2; //有指针为空的情况
    }
    
    int main()
    {
    	char *st1="abdefg";
    	char *st2="abcdefg";
    	printf("%d\n",strcmp(st1,st2));
    
    	char *st3="12345";
    	char *st4="12345";
    	printf("%d\n",strcmp(st3,st4));
    
    	char *st5="xyz",*st6=NULL;
    	printf("%d\n",strcmp(st5,st6));
    
    	return 0;
    }

    在下在gcc的编译器当中编译通过。
  • 相关阅读:
    JavaScript String常用方法和属性
    JavaScript null 和 undefined
    document.write()
    MyBatis中的@MapKey注解
    Zookeeper实现分布式锁
    zookeeper相关
    二阶段提交和三阶段提交
    代理模式
    模板方法模式
    策略模式
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007752.html
Copyright © 2011-2022 走看看