发布于2026-07-07 阅读(0)
扫一扫,手机访问
在Linux上用C++处理字符串,其实是一件相当常见的事。C++标准库里的头文件提供了不少好用的工具,下面就来盘点一下那些最基础、也最常用的操作。

先把头文件请进来:
#include #include 创建一个字符串,直接赋值就行:
std::string str = "Hello, World!";想知道字符串有多长?用 length() 或者 size() 都行:
size_t length = str.length(); // 或者 str.size();访问某个字符,跟数组一样,直接用下标:
char ch = str[0]; // 取第一个字符字符串拼接?+ 号搞定:
std::string str2 = "Goodbye, ";std::string combined = str2 + str; // 结果:"Goodbye, World!"比较两个字符串是否相等,直接上 ==:
if (str == "Hello, World!") {std::cout << "Strings are equal." << std::endl;}找子串的位置?用 find(),找不到会返回 std::string::npos:
size_t found = str.find("World");替换子串也不复杂——先找到位置,再替换:
size_t pos = str.find("World");if (pos != std::string::npos) {str.replace(pos, 5, "C++"); // 把"World"替换成"C++"}分割字符串?标准库没有直接提供现成的函数,不过用 std::stringstream 配合 getline 就能轻松搞定:
std::string data = "apple,orange,banana";std::stringstream ss(data);std::string item;while (std::getline(ss, item, ',')) {std::cout << item << std::endl;}字符串和数字互转,有现成的函数:
std::string str_num = "123";int num = std::stoi(str_num);int num = 456;std::string str_num = std::to_string(num);忽略大小写比较?需要一点技巧——用 std::equal 加上 tolower:
std::string str1 = "hello";std::string str2 = "Hello";if (str1 == str2) {// 不会执行,因为严格比较不相等}if (str1.size() == str2.size() && std::equal(str1.begin(), str1.end(), str2.begin(), [](char a, char b) {return std::tolower(a) == std::tolower(b);})) {// 会执行,忽略大小写后相等}基本操作就是这些。当然,实际项目中可能还会遇到更复杂的需求,比如正则匹配、流式处理等等。但掌握了上面这些,日常的字符串处理基本够用了。最后提醒一句:编译时记得用 g++ 或 clang++,并链接必要的库。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8