c++字符大小写转换
#include <iostream>#include <algorithm>
using namespace std;
int main()
{
string s;
while(cin>>s)
{
transform(s.begin(),s.end(),s.begin(),::tolower);
cout<<s<<endl;
}
return 0;
}
有点不解tolower前面的::是干什么用的? 回复 1# 魔鬼的惊叹
http://en.cppreference.com/w/cpp/language/qualified_lookup 魔鬼的惊叹 发表于 2016-07-31 11:46 static/image/common/back.gif
有点不解tolower前面的::是干什么用的?
这个不能正确处理GBK汉字,会吧汉字改变了。 tolower 前面的::表示的应该是最上层命名空间,就是说tolower不在其他的命名空间中 std::string 也可以写成 ::std::string 回复 5# cjfeii
如果我不加::编译就过不去
加上::是明确指明使用std::tolower()吗
::tolower 并不是表示 std::tolower
::tolower 表示不是任意一个有名命名空间的函数,这是为了防止和其他命名空间里面的同名函数混淆。 ::tolower 表示的是全局函数,而不是某一个命名空间的函数。
页:
[1]