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

boyanx3个月前技术教程15

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

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

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

话不多说,直接上代码。

#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;
}



标签: 字符对比

相关文章

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

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

Java KMP算法:让字符串匹配不再烦恼

前言在编程的世界里,字符串匹配就像一场“表面简单,内里复杂”的戏码。表面上,两个字符串的比较似乎跟找朋友的名字一样容易;可当数据量爆炸时,那些原本看似轻松的算法瞬间变得如同用手撕牛皮纸,令人崩溃。别担...

JavaScript比较运算符(js比较对象)

JavaScript 语言中有两种比较方式,转换类型比较运算符 == 和严格比较运算符 ===。其中严格比较运算符仅当两个操作数的类型相同且值相等时才为true。而转换类型比较运算符== 会在进行比较...

C#拼接字符串及简单性能比较(c#两个字符串相连接)

在C#编程中拼接字符串应该是最常见的场景之一,假如现在有几个变量需要转换成字符串并按格式拼接,常用的几种方法:int a = 1; char b = 'c'; double c = 1...

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

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

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

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

发表评论    

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