C++字符串比较函数的实现(c++字符串比较大小规则)

boyanx7个月前技术教程30

项目中基础函数的实现其实更有意思。

公司大佬发来消息,说要我看看一个字符串比较函数的实现有没有问题,我仔细看了看,回复说没有发现问题,而且突然觉得基础函数的编写更有意思,更考基础和逻辑思维能力。

于是,决定把这个函数的实现记录下来,以后可以随时有空就看看。

话不多说,直接上代码。

#pragma once

#include <string>
#include <iostream>

using namespace std;

int compare(const string &s1, const string &s2)
{
    auto first1 = s1.begin();
    auto last1 = s1.end();
    auto first2 = s2.begin();
    auto last2 = s2.end();
    for (; (first1 != last1) && (first2 != last2); ++first1, (void)++first2)
    {
        auto c1 = tolower(*first1);
        auto c2 = tolower(*first2);
        if (c1 < c2)
            return -1;
        else if (c2 < c1)
            return 1;
    }

    if (first1 == last1)
    {
        if (first2 != last2)
            return -1;
        else
            return 0;
    }

    return 1;
}

void printCompare(const string& s1, const string& s2)
{
    cout << compare(s1, s2) << endl;
}



标签: 字符对比

相关文章

有很多人问我,怎么来对比这个单元格是否包含某个字符

有很多人问我,怎么来对比这个单元格是否包含某个字符。今天就把这个函数分享出来,希望能帮助你们更好、更快的办公。函数公式如下:=IF(ISNUMBER(SEARCH("K", A2)),...

Go 字符串四种拼接方式的性能对比

简介使用完整的基准测试代码文件,可以直接运行来比较四种字符串拼接方法的性能。for 索引 += 的方式for range += 的方式strings.Join 的方式strings.Builder 的...

Excel文本有多个相同符号,如何分别提取该符号前、中、后的内容

当excel数据列中,部分的单元格文本中包含了不止一个的相同特定符号,该如何提取这个符号之前,及这两个符号之间,或符号之后的字符串内容。如下图所示,在A列源数据中,是工程项目使用的一些材料的尺寸面积,...

批量分析文本中字符出现的次数并统计

批量分析文本中字符出现的次数并统计在数据统计及分析数据过程中经常会遇到,对于这个问题的解题思路也很明确,先拆分统计,再去重按条件整合。所以公式为=FILTER(UNIQUE(REGEXP(CONCAT...

哪种编程语言又快又省电?有人对比了27种语言

编辑:小舟、张倩在手机快没电时,管理软件往往会提醒我们关掉某些耗电量高的应用。可见,除了硬件厂商外,软件厂商也应该重视能耗问题。在这篇文章中,研究者分析了一下各种编程语言的能耗对比。当能耗也成为了一个...

「数据库调优」屡试不爽的面试连环combo

点赞再看,养成习惯前言面试官:敖丙你简历上写了你会数据库调优,你都是怎么调优的?敖丙:加索引。面试官:还有么?敖丙:没了。面试官:我们公司的门你知道在哪里吧,自己走还是我送你?哈哈开头这个场景是我臆想...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。