Chinaunix首页 | 论坛 | 博客
  • 博客访问: 667561
  • 博文数量: 150
  • 博客积分: 4070
  • 博客等级: 中校
  • 技术积分: 1795
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-23 21:44
文章分类

全部博文(150)

文章存档

2012年(1)

2011年(123)

2010年(26)

分类: C/C++

2011-06-23 08:40:57

1、a的ASCII码为:97;26个字母的ASCII是连续的,则z的ASCII码为:122。
   A的ASCII码为:65;则Z的ASCII码为:90。
   两者之间的ASCII码差距为:32。可以利用这个差距,实现大小写字母之间的转换。
 如下面的例子是在一串字符中,如果是小写,则转换为大写字母。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main()
  5. {
  6.     char str[] = "12dfdhAFdWd$#@hj";
  7.     for (int i = 0; i < strlen(str); i++)
  8.     {
  9.         if (str[i] >= 97 && str[i] <= 122) //or if (str[i] >= 'a' && str[i] <= 'z')
  10.         {
  11.             str[i] -= 32;
  12.         }
  13.     }
  14.     printf("%s\n", str);

  15.     return 0;
  16. }

输出结果为:.

下面的例子是将大写字母转换为小写

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main()
  5. {
  6.     char str[] = "12dfdhAFdWd$#@hj";
  7.     for (int i = 0; i < strlen(str); i++)
  8.     {
  9.         if (str[i] >= 65 && str[i] <= 90) //or if (str[i] >= 'A' && str[i] <= 'Z')
  10.         {
  11.             str[i] += 32;
  12.         }
  13.     }
  14.     printf("%s\n", str);

  15.     return 0;
  16. }

2. 字符‘0’的ASCII码为48。‘0’到‘9’的ASCII是连续的,这样‘9’的ASCII码为:57。

   于是数字字符转换为数字时可以通过用数字字符的ASCII码-48即可。

阅读(1510) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~