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

boyanx1个月前技术教程9

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

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

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

话不多说,直接上代码。

#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)),...

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

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

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

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

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

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

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

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

long double也溢出如何比较大小(C语言大数比较算法)

以上数据溢出无法比较数字比较跟字符串比较是有差别的,不能直接strcmp完事了。数字比较主要考虑是数字对齐下面是算法比较支持很长很长大大数串#include<stdio.h>#includ...

发表评论    

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