字符串比较分为两种情况,一种是单个字符比较大小,一种是多个字符构成的字符串整体比较大小。
字符与字符串比较原理:
字符串与字符比较原理其实都是比较单个字符的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="">
字符串2.>
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
