字符串比较原理(strcmp,string)

字符串比较原理(strcmp,string)字符串比较分为两种情况 一种是单个字符比较大小 一种是多个字符构成的字符串整体比较大小 字符与字符串比较原理 字符串与字符比较原理其实都是比较单个字符的 ASCII 码值 如果单纯比较长度 直接调用类似于 strlen 之类的函数就可以 加以比较即可 如果比较字符串的大小 则比较的是字符的 ASCII 编码的大小 你搜索一下 ASCII 码表就可以得知每一个 ASCII 字符的大小 在比较字符串

字符串比较分为两种情况,一种是单个字符比较大小,一种是多个字符构成的字符串整体比较大小。

字符与字符串比较原理:

字符串与字符比较原理其实都是比较单个字符的ASCII码值。

如果单纯比较长度,直接调用类似于strlen()之类的函数就可以,加以比较即可. 如果比较字符串的大小,则比较的是字符的ASCII编码的大小.你搜索一下ASCII码表就可以得知每一个ASCII字符的大小.

在比较字符串时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较,

1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值 则 继续比较下一位

2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值 则 输出结果:1,表示字符串1 > 字符串2;

3.如果 字符串1的第n位的ASCII码值 小于 字符串2的第n位的ASCII码值 则 输出结果:-1 表示字符串1 < 字符串2;

4.如果 每一位的ASCII码值都相等,而且长度相同, 则 输出结果:0 表示字符串1 == 字符串2;

5.如果 字符串1是字符串2的前m位,例如 abcd 与abcdef 比较, 则 字符串1
<字符串2. 原因是,到第5位时,字符串1的ascii值是0,而字符串2的ascii值为'e',即十进制的101,当然是字符串2大了.="" 具体到="" cds和lesoqd="" 从第一位开始,'c'和'l'比较,当然是'c'="" <="" 'l'了,所以,"cds"="" "lesoqd"<="" p="">

1.字符比较大小

字符比较其实就是比较两个字符的ASCII码值大小(ASCII码表

示例:直接比较大小

char c1 = 'a'; char c2 = 'A'; if (c1 > c2) { cout << "c1>c2" << endl; } if (c1==c2) { //相等 }

2.字符串比较大小

1.可以使用C语言中的Strcmp函数

 Strcmp

描述

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

参数

  • str1 -- 要进行比较的第一个字符串。
  • str2 -- 要进行比较的第二个字符串。

返回值

该函数返回值如下:

  • 如果返回值 < 0,则表示 str1 小于 str2。
  • 如果返回值 > 0,则表示 str2 小于 str1。
  • 如果返回值 = 0,则表示 str1 等于 str2。

示例:

#include 
  
    #include 
   
     int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) { printf("str1 小于 str2"); } else if(ret > 0) { printf("str2 小于 str1"); } else { printf("str1 等于 str2"); } return(0); } 
    
  

 

2.使用c++ Stl中的sring类(比较string类的对象即可)

示例:

#include 
  
    #include 
   
     using namespace std; int main(){ string str1("235"); string str2("121"); bool result; result = str1 > str2; cout< 
    
      str2; cout< 
     
       str2; cout< 
       
      
     
    
  

参考资料:https://blog.csdn.net/djimon/article/details/

https://blog.csdn.net/jason_cuijiahui/article/details/

百度百科

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205284.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:22
下一篇 2026年3月19日 下午6:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号