Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159927
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 19:05
文章分类

全部博文(30)

文章存档

2009年(3)

2008年(27)

我的朋友

分类: 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  s += toUpper(temp[i]);

}

 

void makeLower(string& s) {

 string temp = s;

 s = "";

 for(size_t i=0;i  s += toLower(temp[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;Is[i]=toupper(s[i]);
printf(“after toupper() : %s\n”,s);
}
 
执行 before toupper() : aBcDeFgH12345;!#$
after toupper() : ABCDEFGH12345;!#$
 

阅读(13905) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:C++中的关联容器map用法

给主人留下些什么吧!~~