zoukankan      html  css  js  c++  java
  • 知识点C++

    比较2个字符串的大小……
    s1=s2,strcmp(s1,s2) == 0;
    s1>s2, strcmp(s1,s2) == 1;
    s1<s2, strcmp(s1,s2) == -1;
    strcmp是字符串比较函数,作用是比较字符串1和字符串2
    如:strcmp(str1,str2);
      strcmp("china","korea");
    比较的结果由函数带回。
    (1)如果字符串1=字符串2,函数值为0。
    (2)如果字符串1〉字符串2,函数值为一正整数
    (3)如果字符串1<字符串2,函数值为一负整数
    
    具体程序的例子:
    #include <stdio.h>
    #include <stdlib.h>
    #include<string.h>
    
    void main()
    {
            char a[50],b[50];
        
            printf("请输入字符串a: 
    ");
            gets(a);
            printf("请输入字符串b: 
    ");
            gets(b);
    
            if(strcmp(a,b)>0)
                printf("a>b");
            else if(strcmp(a,b)<0)
                printf("a<b");
            else if(strcmp(a,b)==0)
                printf("a==b");
            
            system("pause");
    }
    strcmp(s1,s2) 对两个字符串进行比较,逐一比较字符的ascii码,a为97,A为65 所以a>A;分出大小后面不再比较; 
    如果s1>s2,返回1; 
    如果s1=s2,返回0; 
    如果s1<s2,返回-1
    跟字符串的长度无关的.
    就是从两个字符串的头开始比.相应位的字符进行对比.实际上是比较相应位字符的ASCII码大小.
    如char *s1="abc";
    char *s2="bd";
    执行strcmp(s1,s2),其结果是负的.
    从两个字符串的头开始比,因为字符串s1中的'a'小于s2中的'b'所以s1<s2;
    再如:
    char *s1="abc";
    char *s2="ad";
    其结果也是负的,因为s1中的'b'<s2中的'd'
    再如:
    char *s1="abc";
    char *s2="ab";
    其结果就是正的.因为s1中的'c'大于s2中的'';因为字符串的最后一个字符是0;
    再如:
    char *s1="abc";
    char *s2="abcd";
    其结果是负的.因为s1中的''小于s2中的'd';
  • 相关阅读:
    SpringBoot异步处理请求
    5本最佳的 Java 面向对象理论和设计模式的书籍
    彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法
    Java 性能优化的五大技巧
    Java 8 最佳技巧
    Java 并发的四种风味:Thread、Executor、ForkJoin 和 Actor
    在 Java 8 中避免 Null 检查
    关于创建java线程池问题的思考
    LuoguP1858 多人背包(DP)
    Luogu[YNOI2019]排序(DP,线段树)
  • 原文地址:https://www.cnblogs.com/herizai/p/3180672.html
Copyright © 2011-2022 走看看