string转小写的各种实现方式

一、string转小写字母

string转小写字母是一项常见的字符串操作任务。在C++中,我们可以通过循环遍历字符串并按照ASCII码进行位移的方式来实现。

<string>
<algorithm>

using namespace std;

void to_lower(string& str) {
    transform(str.begin(), str.end(), str.begin(), ::tolower);
}

int main() {
    string s = "HELLO WORLD";
    to_lower(s);
    cout << s << endl;
    return 0;
}

上述代码中,我们使用了algorithm头文件中的transform()函数来实现遍历操作,使用::tolower来进行小写字母的转换。

二、string转换成小写

除了可以遍历字符串进行小写转换操作,C++中还提供了许多高效的库函数来实现这一目标。

#include 
#include 

using namespace std;

string to_lower(string str) {
    transform(str.begin(), str.end(), str.begin(), ::tolower);
    return str;
}

string to_lower_case(string str) {
    locale loc;
    for (int i = 0; i < str.size(); ++i) {
        str[i] = tolower(str[i], loc);
    }
    return str;
}

int main() {
    string s = "HELLO WORLD";
    cout << to_lower(s) << endl;
    cout << to_lower_case(s) << endl;
    return 0;
}

其中,我们使用了locale标准库中的tolower()函数来实现字符的小写转换,并使用了C++11中的auto关键字来自动判断返回值类型。

三、string转小写函数

依靠谷歌来实现string转小写函数:

#include 

using namespace std;

string tolower(string s) {
    transform(s.begin(), s.end(), s.begin(),
        [](unsigned char c){ return tolower(c); });
    return s;
}

int main() {
    string s = "HELLO WORLD";
    cout << tolower(s) << endl;
    return 0;
}

上述代码中使用了lambda表达式来实现对字符的小写转换,同时使用了C++11的auto关键字来自动推断返回类型。

四、c++ string 转小写

如果使用C++ string来实现小写转换,我们可以直接使用在algorithm头文件中定义的transform()函数,将每个字符转换为小写字符即可:

#include 
#include 

using namespace std;

string tolower(string s) {
    transform(s.begin(), s.end(), s.begin(), ::tolower);
    return s;
}

int main() {
    string s = "HELLO WORLD";
    cout << tolower(s) << endl;
    return 0;
}

五、std::string 转小写

C++标准库中的std::string类中也有小写转换函数,我们可以使用transform()函数和tolower()函数来实现:

#include 
#include 

using namespace std;

string tolower(string s) {
    locale loc;
    for (int i=0; i<s.size(); ++i) {
        s[i] = tolower(s[i],loc);
    }
    return s;
}

int main() {
    string s = "HELLO WORLD";
    cout << tolower(s) << endl;
    return 0;
}

六、string大写转小写

和小写转大写很类似,只需要将toupper()函数替换为tolower()函数即可:

#include 
#include 

using namespace std;

string tolower(string s) {
    transform(s.begin(), s.end(), s.begin(), ::tolower);
    return s;
}

string toupper(string s) {
    transform(s.begin(), s.end(), s.begin(), ::toupper);
    return s;
}

int main() {
    string s = "HELLO WORLD";
    cout << tolower(s) << endl;
    cout << toupper(s) << endl;
    return 0;
}

七、string转list

在C++中,如果我们需要将一个字符串按照某个特定的分隔符进行分割,并将分割后的内容存入一个list中,可以使用下面的代码:

#include 
#include 
#include 

using namespace std;

list split(const string& str, char delimiter=' ') {
    list result;
    stringstream ss(str);
    string item;

    while (getline(ss, item, delimiter)) {
        result.push_back(item);
    }

    return result;
}

int main() {
    string s = "hello world";
    list l = split(s);
    for (auto& item: l) {
        cout << item << endl;
    }
    return 0;
}

在上述代码中,我们使用了std::stringstream和std::getline()函数来实现字符串分割的操作。可以根据需要设定分隔符来分割字符串。

八、string转integer

如果我们需要将一个字符串转换为整数,可以使用C++标准库提供的stol()函数:

#include 
#include 
using namespace std;

int main() {
    string s = "123";
    long res = stol(s);
    cout << res << endl;
    return 0;
}

九、string转byte

在C++中,同样可以将一个字符串表示的信息转换为二进制数据。一个字节可以被表示为char类型。我们可以使用static_cast()函数将其转换为char类型:

#include 
#include 
using namespace std;

int main() {
    string s = "A";
    char res = static_cast(s.data()[0]);
    cout << (int)res << endl;
    return 0;
}

在上述代码中,我们将string类型的数据转换为char类型,并强制转换为整数输出。

原创文章,作者:DYQRM,如若转载,请注明出处:https://www.506064.com/n/318194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
DYQRMDYQRM
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相关推荐

  • c# enum转换成string

    本文将从以下几个方面详细阐述c#中enum类型转换成string类型的方法及注意事项。 一、基本语法和示例 c#中的enum类型可以看作是一组有名字的常量值,通常用于定义一组相关的…

    编程 2025-04-29
  • Python缓存图片的处理方式

    本文将从多个方面详细阐述Python缓存图片的处理方式,包括缓存原理、缓存框架、缓存策略、缓存更新和缓存清除等方面。 一、缓存原理 缓存是一种提高应用程序性能的技术,在网络应用中流…

    编程 2025-04-29
  • Python在线编辑器的优势与实现方式

    Python在线编辑器是Python语言爱好者的重要工具之一,它可以让用户方便快捷的在线编码、调试和分享代码,无需在本地安装Python环境。本文将从多个方面对Python在线编辑…

    编程 2025-04-28
  • Java表单提交方式

    Java表单提交有两种方式,分别是get和post。下面我们将从以下几个方面详细阐述这两种方式。 一、get方式 1、什么是get方式 在get方式下,表单的数据会以查询字符串的形…

    编程 2025-04-27
  • 用Pythonic的方式编写高效代码

    Pythonic是一种编程哲学,它强调Python编程风格的简单、清晰、优雅和明确。Python应该描述为一种语言而不是一种编程语言。Pythonic的编程方式不仅可以使我们在编码…

    编程 2025-04-27
  • Java多版本支持实现方式

    本文将从以下几个方面阐述如何实现Java多版本支持,并给出可行的代码示例。 一、多版本Java环境概述 Java是一门跨平台的编程语言,但是在不同的应用场景下,可能需要使用不同版本…

    编程 2025-04-27
  • SpringBoot Get方式请求传参用法介绍

    本文将从以下多个方面对SpringBoot Get方式请求传参做详细的阐述,包括URL传参、路径传参、请求头传参、请求体传参等,帮助读者更加深入地了解Get请求方式下传参的相关知识…

    编程 2025-04-27
  • Python获取APP数据的多种方式

    如果您需要对APP进行分析、数据采集、监控或者自动化测试,那么您一定需要获取APP的数据。本文将会介绍一些Python获取APP数据的方式。 一、使用ADB工具获取APP数据 AD…

    编程 2025-04-27
  • Python中用空格隔开的使用方式

    Python是一种高级编程语言,非常流行,因为它有很多有用的功能。其中一个有用的功能是用空格隔开代码。在本文中,我们将从多个方面讨论Python中如何使用空格隔开代码。 一、Pyt…

    编程 2025-04-27
  • HTTP请求方式的选择:POST还是GET?

    对于使用xxl-job进行任务调度的开发者,通常需要发送HTTP请求来执行一些任务。但是在发送请求时,我们总是会遇到一个问题:是使用POST还是GET?下面将从多个方面对这个问题进…

    编程 2025-04-27

发表回复

登录后才能评论