我自闲庭信步,悠然自得,不亦乐乎.

                                       ------ Keep life simple
GMail/GTalk/MSN:huyi.zg@gmail.com

 

大写字符串快速转换成小写的函数

 1/* 32-bit, little-endian. suif.liyuan */
 2
 3int zbyter(unsigned int x)
 4
 5{
 6
 7     unsigned int y;
 8
 9     y = (x & 0x7F7F7F7F+ 0x7F7F7F7F;
10
11     y = ~(y | x | 0x7F7F7F7F);
12
13     if (y == 0)
14
15          return 4;
16
17     else if (y & 0x0000FFFF)
18
19          return ((y >> 7& 1^ 1;
20
21     else
22
23          return ((y >> 23& 1^ 3;
24
25 }

26
27 int UptoLow(char* pszString)
28
29{
30
31     char* pByte = 0;
32
33     int* pn4byte = 0;
34
35     int zPos;
36
37     pn4byte = (int*)pszString;
38
39     while (true)
40
41     {
42
43         zPos = zbyter(*pn4byte);
44
45         if (4 != zPos) break;
46
47         *pn4byte++ |= 0x20202020;
48
49     }

50
51     pByte = (char*)pn4byte;
52
53     for (int i = 0; i < zPos; ++i)
54
55         *pByte++ |= 0x20;
56
57     return 1;
58
59}
 
似乎很高效的样子:)

posted on 2006-03-03 13:01 HuYi 阅读(979) 评论(0)  编辑 收藏 引用 所属分类: C/C++代码


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


导航

统计

常用链接

留言簿(12)

随笔分类

相册

收藏夹

友情链接

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜