c++ - 在 C++ 中将单个字符转换为小写 - tolower 返回一个整数

标签 c++ string char lowercase tolower

我正在尝试将字符串转换为小写,并将其视为 char* 并遍历每个索引。问题是 tolower我在网上读到的函数实际上并不是将 char 转换为小写:它将 char 作为输入并返回一个整数。

cout << tolower('T') << endl;

打印 116当它应该打印时到控制台 T .

是否有更好的方法将字符串转换为小写? 我在网上四处查看,大多数消息来源都说 “使用 tolower 并遍历字符数组”,这似乎对我不起作用。

所以我的两个问题是:

  1. 我对 tolower 做错了什么?当我调用 tolower('T') 时它返回 116 而不是 't' 的函数

  2. 除了使用 tolower 之外,是否有更好的方法在 C++ 中将字符串转换为小写字母?在每个单独的角色上?

最佳答案

那是因为有两个不同的tolower函数。您使用的是 this one ,它返回一个 int。这就是它打印 116 的原因。这是 't' 的 ASCII 值。如果你想打印一个char,你可以把它转换回一个char

或者,您可以使用 this one ,它实际上返回了您希望它返回的类型:

std::cout << std::tolower('T', std::locale()); // prints t

针对您的第二个问题:

Are there better ways to convert a string to lowercase in C++ other than using tolower on each individual character?

没有。

关于c++ - 在 C++ 中将单个字符转换为小写 - tolower 返回一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849637/

相关文章:

c++ - 将 C Flex 词法分析器链接到 C++ 解析器

string - 在 Octave 中实现 Matlab 的 `num2str` 行为

java - 如果标签包含目标,则标签之间的正则表达式匹配

c++ - 打开文件时出现问题并且可能将文件输入/输出到字符串

c++ - 如何使用 C++ win32 API 将 Variant Safe Array 转换为 Char?

c++ - std::optional 的普通默认构造函数

c++ - 如何为链表编写_find 方法?

python - 在 Pandas 数据框中填充一列字符串

将 char* 字符串转换为大写

Java:将每个字母转换为数字,例如a = 1,b = 2,c = 3