今天写了一个小例子,把字符串里面的所有小写字母全部转换成大写字母
http://blog.csdn.net/yasaken/article/details/7303903 1 #include "stdafx.h"
#include <string>
#include <algorithm>
#include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
string strA = "123@456$abc";
transform(strA.begin(), strA.end(), strA.begin(), ::toupper); //当时一直没明白为什么toupper前面要加::
cout<<strA<<endl;
getchar();
return ;
}
如果没有 上面 using namespace std; 这句话 
transform(strA.begin(), strA.end(), strA.begin(), ::toupper);和transform(strA.begin(), strA.end(), strA.begin(), toupper); 都可以编译通过

从网上找了个讲解的例子http://blog.sina.com.cn/s/blog_48d5933f0100riz5.html

标准库重载了一个toupper函数,而GCC完全由c库去提供重载, 而glibc做不到这一点,所以在编译的时候g++就认为这个函数有歧义了.下面是标准库中toupper函数的两种形式
int std::toupper(int); //from <cctype>
template<class charT>
charT std::toupper(charT, const local&); //from <locale>
此时有三种解决办法:
第一种 包装函数-->只有在包装函数中指明要使用的函数,歧义自然就没了
Int toUpper(int c)
{
return toupper(c);
}
第二种 强制转化--->将toupper转换为一个返回值是int,参数只有一个int的函数指针
std::transform(s.begin(), s.end(), s.begin(), (int(*)(int)) toupper);
第三种 GCC中将toupper实现为一个宏而不是函数,而在全局命名空间中有实现的函数(而不是宏), 所以我们明确命名空间,这并不总是奏效,但是我我的g++环境中没有这个问题
transform(s.begin(), s.end(), s.begin(), ::toupper);

再附带一个小例子

现在我们来看看 transform函数, 开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数
template < class InputIterator, class OutputIteror, class UnaryOperator >
OutputIterator transform( InputIterator first1, InputIterator last1, OutputIterator result, UnaryOperator op); template < class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperator >
OutputIterator transform ( InputIterator1 first1, InputIterator2 last1, InputIterator2 first2, OutputIterator result, BinaryOperator binary_op);
 

把一个string串的所有小写字母转成大写字母的例子来看看看全局函数的使用的更多相关文章

  1. AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13

    13:将字符串中的小写字母转换成大写字母 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个字符串,将其中所有的小写字母转换成大写字母. 输入 输入一行,包含一个字符串(长度不 ...

  2. Scanner方式输入小写字母转换成大写字母

    import java.util.Scanner; /**  * 小写字母转换成大写字母      * @author zzu119  *  */ public class letterTransfe ...

  3. 将一个字符串中的大写字母转换成小写字母,小写字母转换成大写字母(java)

    背景:刚刚学到java的String和StringBuffer类,遇到如标题所示的题. 要求:必须要用到String类的toUpperCase方法和toLowerCase方法 思路:用到StringB ...

  4. 用linux的shell脚本把目录下面的所有文件的文件内容中的小写字母改成大写字母

    最近工作中,产品组的同事给出的数据里面都是小写字母 ,但是引擎组的同事要求他们拿到的从数据里面解析出的结构体里面存储的要都是大写结构,这让我们数据预处理组很尴尬啊,,所以在写了个这么样的脚本,在解析数 ...

  5. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  6. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg, 字符串内的其他字符不改变,给定函数,编写函数 void Stringchang(const char*input,char*output)其中input是输入字符串,output是输出字符串

    import java.util.Scanner; /*** * 1. 给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg, 字符串内的其他字 ...

  7. input输入框输入小写字母自动转换成大写字母

    input输入框输入小写字母自动转换成大写字母有两种方法 1.用js onkeyup事件,即时把字母转换为大写字母: html里input加上 <input type="text&qu ...

  8. android 设置字体颜色、EditText自己主动输入转换成大写字母的多种方式

    在TextView上面设置某一个字的字体颜色为指定颜色时,能够通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void ...

  9. Javascript 将一个句子中的单词首字母转成大写

    Javascript 将一个句子中的单词首字母转成大写 先上代码 function titleCase(str) { str = str.toLowerCase().split(" &quo ...

随机推荐

  1. office文件在线预览,模仿网易邮箱在线预览的

    最近研究了半天,代码是倾情奉送啊,C#,asp.net的 这个原理是office文件转换为PDF文件,然后再转换成SWF文件,FlexPaper+swfTools. 有个问题,需要在web.confi ...

  2. Python抓取淘宝IP地址数据

    def fetch(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip result = [] try: response ...

  3. Codeigniter数据库操作

    //查询: $query = $this->db_query("SELECT * FROM table"); ================================ ...

  4. String与常量池

    转自:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html 1. 首先String不属于8种基本数据类型,String是一个对象.因为对象的默认值是 ...

  5. linux之access函数解析

    [lingyun@localhost access_1]$ ls access.c 实例一: [lingyun@localhost access_1]$ cat access.c  /******** ...

  6. 利用京东云擎架设免费Wordpress 博客(git方式)

    京东云擎(JAE)是京东推出的一款公有云产品,是京东云平台生态圈的核心组成部分.与百度的BAE.新浪的SAE同样.可是JAE刚上线不久,可能非常多人都还没听说过或不太了解.我尝试在JAE安装WordP ...

  7. JSP中嵌入java代码的标签方式(转)

    (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% java代码; %> (3)表达式 ...

  8. EditText操作收集

    1.android EditText插入字符串到光标所在位置 EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象 i ...

  9. 为什么DropDownList的SelectedIndexChanged事件触发不了

    写的还行,转来大家看看 为什么DropDownList的SelectedIndexChanged事件触发不了? 为什么设置了DropDownList的AutoPostBack="True&q ...

  10. qt中如果用qDebug输出彩色调试信息

    Linux:  在终端输出彩色信息有点类似于html的语法,即在要输出的文字前加上转义字符. 指令格式如下\033[*m 这里的*就是转义字符,例如我们要输出一段绿色的文字 qDebug(" ...