我试图将字符串转换为小写,并将其视为char *并遍历每个索引。问题是我在网上阅读的tolower
函数实际上并未将char转换为小写字母:它将char作为输入并返回一个整数。
cout << tolower('T') << endl;
当应该打印
116
时,将T
打印到控制台。我有更好的方法将字符串转换为小写吗?
我在网上四处看看,大多数消息人士说“使用
tolower
并遍历char数组”,这似乎对我不起作用。所以我的两个问题是:
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
针对您的第二个问题:
不。
关于c++ - 在C++中将单个字符转换为小写-tolower返回一个整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33849637/