21xrx.com
2024-06-03 00:07:35 Monday
登录
文章检索 我的文章 写文章
C++ 字符串大小写转换技巧
2023-06-30 09:36:01 深夜i     --     --
C++ 字符串 大小写转换 技巧 编程

在 C++ 中,字符串的大小写转换是一种基本操作,可用于许多实际情况中。虽然 C++ 中有多种方法可以实现这个目标,但在本文中,将介绍一些简单的技巧和函数。

一种常见的做法是使用 `toupper()` 和 `tolower()` 函数,它们可以将字符转换为大写或小写。如果要将整个字符串转换为大写或小写字母,可以采用循环遍历字符串的方式,对字符串中的每个字符逐个调用这两个函数进行转换。如下所示:


#include <iostream>

#include <cstring>

#include <cctype>

using namespace std;

int main()

{

  string s = "Hello, world!";

  for(int i = 0; i < s.length(); i++)

  {

    s[i] = tolower(s[i]); // 将字符串转换为小写字母

  }

  cout << s << endl; // 输出 "hello, world!"

  return 0;

}

如果要将字符串转换为大写字母,只需将 `tolower()` 改为 `toupper()` 即可。

另外,C++11 在标准库中引入了 `std::transform()` 函数,该函数可以接受一个 lambda 表达式或函数指针作为参数。因此,我们可以使用 `std::transform()` 函数来简化上面的代码。如下所示:


#include <iostream>

#include <cstring>

#include <algorithm>

#include <cctype>

using namespace std;

int main()

{

  string s = "Hello, world!";

  std::transform(s.begin(), s.end(), s.begin(),

    [](unsigned char c){ return std::tolower(c); }); // 将字符串转换为小写字母

  cout << s << endl; // 输出 "hello, world!"

  return 0;

}

上述代码使用了 lambda 表达式,其功能与 `tolower()` 相同。如果要将字符串转换为大写字母,则需要将 lambda 表达式中的 `tolower()` 改为 `toupper()`。

除此之外,C++ 标准库中还提供了许多其他有用的字符串处理函数,例如 `std::toupper()`、`std::strtol()`、`std::stoi()` 等。对于不同的需求和场景,我们可以灵活运用这些函数,提高程序的效率和可读性。

总之,C++ 中的字符串大小写转换技巧并不复杂,掌握这些简单的方法和函数,可以帮助我们更加高效地处理字符串操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复