use*_*676 7 c++ string lowercase char tolower
我正在尝试将字符串转换为小写,并将其视为char*并迭代每个索引.问题是tolower我在网上读到的函数实际上并没有将char转换为小写:它将char作为输入并返回一个整数.
cout << tolower('T') << endl;
Run Code Online (Sandbox Code Playgroud)
116应该打印时打印到控制台T.
有没有更好的方法将字符串转换为小写?我在网上看过,大多数消息来源都说"使用tolower并遍历char数组",这对我来说似乎并不适用.
所以我的两个问题是:
tolower当我打电话时,它使得它返回116而不是't' 的功能我做错了什么tolower('T')
除了tolower在每个单独的字符上使用之外,还有更好的方法将字符串转换为C++中的小写字母吗?
Bar*_*rry 12
那是因为有两种不同的tolower功能.你正在使用的是这个,它返回一个int.这就是它打印116的原因.那就是它的ASCII值't'.如果你想打印一个char,你可以把它再回到一个char.
或者,你可以使用这个,它实际上返回你希望它返回的类型:
std::cout << std::tolower('T', std::locale()); // prints t
Run Code Online (Sandbox Code Playgroud)
回答你的第二个问题:
除了在每个角色上使用tolower之外,还有更好的方法将字符串转换为C++中的小写吗?
不.