Linux中c语言strcmp,字符串比较原理(strcmp,string)

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

字符与字符串比较原理:

字符串与字符比较原理其实都是比较单个字符的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

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#includeusing namespace std;

int main(){

string str1("235");

string str2("121");

bool result;

result = str1 > str2;

cout

cout

cout<

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

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

百度百科

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值