我正在尝试将字符串转换为小写,并将其视为 char* 并遍历每个索引。问题是 tolower
我在网上读到的函数实际上并不是将 char 转换为小写:它将 char 作为输入并返回一个整数。
cout << tolower('T') << endl;
打印 116
当它应该打印时到控制台 T
.
是否有更好的方法将字符串转换为小写?
我在网上四处查看,大多数消息来源都说 “使用 tolower
并遍历字符数组”,这似乎对我不起作用。
所以我的两个问题是:
我对
tolower
做错了什么?当我调用tolower('T')
时它返回 116 而不是 't' 的函数除了使用
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/