| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 865 人关注过本帖
标题:求助transform的用法
取消只看楼主 加入收藏
dorble
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-14
结帖率:50%
收藏
 问题点数:0 回复次数:3 
求助transform的用法
看见教程上使用transform转换大小写是这样的transform(str1.begin(),str1.end(),str1.begin(),toupper);
我自己编译的时候提示出错,然后把toupper改成towupper通过
我上网搜索都是toupper没有towupper的,请高手指教下怎么回事
环境
系统是64位win7(是不是因为64位系统所以要用towupper,我猜应该是类似宽字符的意思吧);
codeblocks12.11默认编译器
下面是完整代码
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(void)
{
 string str1;
str1="iloveyou";
transform(str1.begin(),str1.end(),str1.begin(),towupper);//用toupper不能编译
 cout<<str1<<endl;
 transform(str1.begin(),str1.end(),str1.begin(),towlower);//用tolower不能编译
 cout<<str1<<endl;

  return 0;
}
搜索更多相关主题的帖子: iloveyou include 编译器 
2013-11-07 02:04
dorble
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-14
收藏
得分:0 
不是我说出来的,是因为我用toupper编译通不过,然后我重新在codeblocks里面建了工程用到了代码自动完成的功能,然后我修改这个参数时
我发现自动提示除了toupper外,另外还有个towupper参数,我抱着试试的态度,改了以后果然成功通过编译,不信你可以自己试下,要在带代码自动完成的环境下
也许你的机器还是只能用toupper,但是你可以看下是不是确定存在towupper,而且我这里确实也只有用带w的才能编译成功,
我也是来问为什么是这样的看附件图
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册


PS刚才看了版主你回复中的网页链接,原来后面toupper这个参数就是std::toupper这个函数啊,
那是不是我的猜想是正确的,应该是系统是32位还是64位有关系

[ 本帖最后由 dorble 于 2013-11-7 14:55 编辑 ]
2013-11-07 14:33
dorble
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-14
收藏
得分:0 
还有版主啊,

我上网搜索都是toupper没有towupper的,请高手指教下怎么回事
真不知道你这句话是怎么说出来的...

我说的意思是transform后面那个参数,我只看见有用toupper的,
没搜到类似transform(str1.begin(),str1.end(),str1.begin(),towupper);这样的用法和解释
不是说没有towupper这个函数本身
2013-11-07 15:16
dorble
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-14
收藏
得分:0 
问题找到了,和unicode无关,和系统也无关 问题在于命名空间
这个帖子结贴吧
2013-11-07 19:11
快速回复:求助transform的用法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.077241 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved