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

今天写了一个小例子,把字符串里面的所有小写字母全部转换成大写字母http://blog.csdn.net/yasaken/article/details/7303903

 1 #include "stdafx.h"
 2 #include <string>
 3 #include <algorithm>
 4 #include <iostream>
 5
 6 using namespace std;
 7
 8 int _tmain(int argc, _TCHAR* argv[])
 9 {
10     string strA = "[email protected]$abc";
11     transform(strA.begin(), strA.end(), strA.begin(), ::toupper); //当时一直没明白为什么toupper前面要加::
12     cout<<strA<<endl;
13     getchar();
14     return 0;
15 }如果没有 上面 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);
 
时间: 2024-11-03 21:50:18

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

toupper(将小写字母转换成大写字母)

/*toupper(将小写字母转换成大写字母) 相关函数 isalpha,tolower 表头文件 #include<ctype.h> 定义函数 int toupper(int c); 函数说明 若参数c为小写字母则将该对映的大写字母返回. 返回值 返回转换后的大写字母,若不须转换则将参数c值返回. 附加说明 范例 */ /* 将s字符串内的小写字母转换成大写字母 */ #include<ctype.h> main() { char s[]="aBcDeFgH12345;

位操作,大写字母转成小写字母,小写字母转成大写字母

----------------------------------------------------------------------------------------------------------------------------------------------------------------- #include <stdio.h> void main () { //不懂是谁发现的,大写字母和小写字母在二进制位上只相差一位 //大写字母二进制位的第6位为0 //小写字

编写一个子程序:将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母

assume cs:code,ds:data data segment db 'Beginners All-purpose Symbolic Instruction Code.',0 data ends code segment begin: mov ax,data mov ds,ax mov si,0 call letterc mov ah,4ch int 21h letterc: push ax s: mov al,[si] mov ah,0 mov cx,ax jcxz return cm

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

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

将用户输入的字符串反向输出到页面上,并且要求将其中的小写字母转换成大写字母。

<script>var str = prompt("脚本提示:\n 请输入一行文字:","");var upper_str = str.toUpperCase();for(var i=upper_str.length-1;i>=0;i--) document.write(upper_str.charAt(i));</script>

把键盘的大写字母改成小写字母,小写字母改成大写字母,数字不做处理

连续输入输出 #include<stdio.h> int main() { int ch = 0; while ((ch = getchar()) != EOF) { if (ch >= 'a'&&ch <= 'z') { putchar(ch - 32); } else if (ch >= 'A'&& ch<= 'Z') { putchar(ch+32); } else { ; } } return 0; } 原文地址:https://

String-需求把一个字符串的首字母转成大写,其余为小写(只考虑英文大小写字母字符)

package cn.lianxi; public class DaXiao { public static void main(String[] args) { /*需求把一个字符串的首字母转成大写,其余为小写(只考虑英文大小写字母字符) * 分析: * 1.先获取第一个字符 * 2.获取除了第一个字符的以外字符 * 3.把第一个字符转成大写 * 4.把第一个字符转成大写 * 5.把除第一个字符以外的字符转成小写 * 6.字符串拼接 * */ String str = "helloWORLD&

编程题:输入一串字符,程序会自动将大写字母转换为小写

编程题:输入一串字符,程序会自动将大写字母转换为小写 #include <stdio.h> #include <conio.h> main() { int i=0; char a[50],ch; printf("输入一串字符,程序会自动将大写字母转换为小写\n"); printf("按任意键继续,按Esc键退出\n"); while(ch=getch()!=27) { fflush(stdin); printf("请输入字符串:\n

JavaScript实现在页面上的文本框中输入小写字母自动变为大写字母

<script language="javascript" type="text/javascript"> $(function () { $("input[type=text]").keyup(function () { $(this).val($(this).val().toUpperCase()); }); }); </script> $("input[type=text]") 处可为文本框ID,