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]# 
  • 相关阅读:
    [BZOJ3530][SDOI2014]数数
    [Luogu3121][USACO15FEB]审查Censoring
    [BZOJ1212][HNOI2004]L语言
    [Luogu3041][USACO12JAN]视频游戏的连击Video Game Combos
    AC自动机总结
    (三)LDAP 新增用户
    (二) LDAP 安装
    (一)LDAP 简介
    (十三)VMware Harbor 身份验证模式
    loj#2541. 「PKUWC2018」猎人杀
  • 原文地址:https://www.cnblogs.com/McQueen1987/p/3929586.html
Copyright © 2011-2022 走看看