分类: C/C++
2008-11-27 14:57:26
方法一:STL(注意包含#include
string s = "aKdfFFdf2r_a4eDF";
transform(s.begin(), s.end(), s.begin(), toupper);
方法二:自己写
标准ASCII码的大小写大小相差32,通常的大小写转换程序可以写成如下形式:
char toUpper(const char ch){
return ch - 32;
}
char toLower(const char ch){
return ch + 32;
}
如果还需要处理一些特殊符号,可以改进如下:
char toUpper(const char ch){
// a - z
if (ch >= 97 && ch <= 122) return ch & 0xDF; // 1101 1111
return ch;
}
char toLower(const char ch){
// A - Z
if (ch >= 65 && ch <= 90) return ch | 0x20; // 0010 0000
return ch;
}
同理,处理字符串时也可调用上述方法:
void makeUpper(string& s) {
string temp = s;
s = "";
for(size_t i=0;i
}
void makeLower(string& s) {
string temp = s;
s = "";
for(size_t i=0;i
}
C中的函数
toupper(将小写字母转换成大写字母)
相关函数 isalpha,tolower
表头文件 #include
定义函数 int toupper(int c);
函数说明 若参数c为小写字母则将该对映的大写字母返回。
返回值 返回转换后的大写字母,若不须转换则将参数c值返回。
附加说明
范例 /* 将s字符串内的小写字母转换成大写字母*/
#include
main()
{
char s[]=”aBcDeFgH12345;!#$”;
int i;
printf(“before toupper() : %s\n”,s);
for(i=0;I
printf(“after toupper() : %s\n”,s);
}
执行 before toupper() : aBcDeFgH12345;!#$
after toupper() : ABCDEFGH12345;!#$