随笔 - 47, 文章 - 10, 评论 - 8, 引用 - 0
数据加载中……

如果简单的实现字符的大小写转换

看一下大小写的acsii码的二进制数据

1 0110   0001
2 0100   0001
唯一不同的只有第6位,所以如果转换成大写,将第6位改为0;如果转换成小写,将第6位改为1。
所以直接对该位异或就可以了
也就是与0x20异或,即0010 0000
转换方法
 1#include <stdio.h>
 2#include <ctype.h>
 3int main(int argc,char *argv[])
 4{
 5    int c;
 6    for(;(c=getchar())!=EOF;)
 7    {
 8        if(isalpha(c))
 9            c ^= 0x20;
10        putchar(c);
11    }

12    return 0;
13}

posted on 2006-04-04 11:16 编程之道 阅读(304) 评论(0)  编辑 收藏 引用 所属分类: C/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理