问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问C++中两个字符串的大小是怎样比较的?72

发布网友 发布时间:2023-10-26 01:25

我来回答

5个回答

热心网友 时间:2024-03-16 19:59

C++中两个字符串的大小比较方法如下:

1、首先,定义一个整型变量j,保存判断的结果。

2、接着,定义两个字符串变量,保存判断的字符串。

3、输入两个字符串,保存在变量s1和s2中。

4、比较字符串s1和s2的大小,保存在变量j中。

5、根据判断结果j的值,输出两个字符串的比较结果。

6、用compare函数比较两个字符串,当s1大于s2时返回值大于0,当s1等于s2时返回值等于0,当s1小于s2时返回值小于0。

热心网友 时间:2024-03-16 20:00

会先比较长度,如果长度大那自然就大,

如果长度相等,会去从左到右逐个比较ascii码的大小,

如果相等则比较下一个,直到有结果。

热心网友 时间:2024-03-16 20:00

如果是std::string的话,可以直接用关系符号,例如小于号(<),比较。

如果是传统的C字符串(const char[])的话,和C语言一样,调用strcmp比较,小于返回负数,大于返回正数,等于返回0。

例如

#include <cstring>
#include <iostream>
#include <string>

int main()

{
    std::string s = "abc";
    std::string t = "def";

    const char u[] = "ghi";
    const char v[] = "jkl";


    std::cout << s << (s < t ? "<" : ">=") << t << std::endl;
    std::cout << u << (std::strcmp(u, v) ? "<" : ">=") << v << std::endl;

    return 0;
}

输出是

abc<def
ghi<jkl

注意无论用哪种方法,顺序规则都是字典规则(lexicographical order)。也就是:

从前往后,逐位比较,第一个不同的字符,按照char的顺序比较(例如字母a小于字母b)

如果第一个字符串是第二个字符串的子列,例如“abc”和“abcde”,则前者小于后者

空字符串小于其它所有字符串

当且仅当字符串长度和每个位置上字符都相同,字符串相等

字典规则示例:

以下程序给字符串排序{ 01, 1, 0, 0000, 10, 100 } 从小到大排序

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

int main()

{
    std::vector<std::string> vec { "01", "1", "0", "0000", "10", "100"};
    std::sort(vec.begin(), vec.end());
    for (auto elem : vec)
        std::cout << elem << " ";

    return 0;
}

输出是

0 0000 01 1 10 100

注意按照字典规则,0000排在1前面,那个说先看字符串长度的答案纯属误人子弟。

热心网友 时间:2024-03-16 20:01

strcmp(str1,str2);
如果str1比str2大,则上表达式>0,等则=0,小则<0。

热心网友 时间:2024-03-16 20:02

不是strcmp吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 请问,我这个是什么兰花呢?老家挖的,种家里,每年七八月或者九... 我是2018年贷款二十万,十年期月供2246元,请问一下我的... 周长计算公式41 参观农贸市场说说喜欢吃的菜属于什么类型的目标表述方法 有没有听说丽蒂雅化妆品公司今年的年终答谢会是什么时候开呀?2 这个三极管参数是多少啊8 这个三极管的具体参数 你能做3d打印的小人吗?有3d打印机?这种3d打印机有卖的吗...1 你好,能保密举报者吗? 中国银行营业时间是几点到几点?194 当兵坐的火车是专用的么?15 气动调节阀厂家哪家好点? 零点七小时等于几分之几小时 都说身体是自己的,是吗?是你真的没有遇到能气死你的人,是无意还是不... 4.中国花名,气味清香,姿态优雅,象征春季,要春的词语是什么...11 三菱劲炫遥控手)、工匹配 尚科s711平板电脑后盖能打开吗?怎么插手机卡?1 哪个转运公司好?美淘转运公司怎么选择?知道的介绍一下,谢谢 如何用proe画日本花键1 万有引力定律的适用范围和适用条件一样吗? 一点零七等于几分之几43 当兵的持士兵证 可以优先买票 和优先坐车吗 都有什么规定呀4 22000个人所得税交多少 风湿性心脏病二尖半狭窄做了手术后,有什么后遗症吗 2尖瓣闭合不严这种心脏病严重么? 铜在酸性条件下和硝酸钾反应16 E13005-2这是什么?大功率三极管么?参数是多少哦 同志...26 帮忙推荐一款笔记本电脑,预算3500左右,最好是轻、薄的。屏幕16寸。 ...是初学者,想买个音色和质量都好的吉他,求大佬推荐 新股中签如何摇号30 贷20万拿到18万月供3833本息,周期60个月,那么利率是...1 新股是怎么摇号,怎么配号的 丽蒂雅化妆品代理需要多少钱,货怎么提 谁了解空气能 热泵 供暖系统,性能如何,安全否? 四十岁的男人,适应什么样的网名 一个人两个手机号,怎样注册两个? 圆的计算公式怎么算圆的周长计算公式54 医生:请问心脏二尖,三尖轻微关 为小三离婚后的男人有幸福的嘛9 晚上没有睡好或是哭过,第二天起来有黑眼圈,用什么办法快速消除??_百...