zoukankan      html  css  js  c++  java
  • 字符串比较strcmp

    问题:

    原型:extern int strcmp(const char *s1,const char * s2);
    所在头文件:string.h
    功能:比较字符串s1和s2。
    一般形式:strcmp(字符串1,字符串2)
    说明:
    当s1<s2时,返回为负数
    当s1=s2时,返回值= 0
    当s1>s2时,返回正数
    即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇''为止。如:
    "A"<"B" "a">"A" "computer">"compare"
    特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
     
    实现:
    #include <stdio.h>
    #include <assert.h>
    
    int _strcmp(const char* str1,const char* str2)
    {
      while(*str1++ == *str2++) if('' == *str1) return 0;
      str1--;str2--;
      return (*str1>*str2)?1:-1;
    }
    
    int main(){
      char s1[] = "computez";
      char s2[] = "computer";
      int ret = _strcmp(s1,s2);
      printf("ret is:%d
    ",ret);
      return 0;
    }
    [root@admin Desktop]# ./a.out
    ret is:1
    [root@admin Desktop]#
    方法2:
    #include <stdio.h>
    #include <assert.h>
    
    int _strcmp(const char* str1,const char* str2)
    {
      for(;*str1 == *str2;str1++,str2++)
        if('' == *str1) return 0;
      return (*str1>*str2)?1:-1;
    }
    
    int main(){
      char s1[] = "computea";
      char s2[] = "computer";
      int ret = _strcmp(s1,s2);
      printf("ret is:%d
    ",ret);
      return 0;
    }
    [root@admin Desktop]# ./a.out
    ret is:-1
    [root@admin Desktop]# 
  • 相关阅读:
    .Net内存回收
    select rank() over
    Android中如何区分界面组件创建和销毁的类型
    Thread和Runnable的区别
    Intent对象若干数据项的含义总结
    libcurl用法
    Hadoop 使用Combiner提高Map/Reduce程序效率
    Struts2中的get、set方法作用:
    struts2 使用jsonplugin
    struts.custom.i18n.resources国际化详解(一)
  • 原文地址:https://www.cnblogs.com/McQueen1987/p/3929586.html
Copyright © 2011-2022 走看看