| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题:各位大哥大组,小弟刚学C ,请教个问题!
只看楼主 加入收藏
oldorab110
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2010-8-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
各位大哥大组,小弟刚学C ,请教个问题!
#include "stdio.h"
void main()
{
    char ch1,ch2;
    ch1='a';
    ch2='b';
    ch1=ch1-'a'+'A';
    ch2=ch2-32;
    printf("%c,%c\n%d,%d\n",ch1,ch2,ch1,ch2);/* 大写和小写之间相差32*/
}这个程序是小写变大写的!可是我想改成大写变小写就改了一个变成这样了:
#include "stdio.h"
void main()
{
    char ch1,ch2;
    ch1='A';
    ch2='B';
    ch1=ch1+'A'-'a';
    ch2=ch2+32;
    printf("%c,%c\n%d,%d\n",ch1,ch2,ch1,ch2);/* 大写和小写之间相差32*/
}可是结果却是! b
              33,98     为什么啊?
搜索更多相关主题的帖子: 大哥大 
2010-09-02 20:34
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:2 
本版禁止毫不思索的求作业。凡此类帖子一概删除。
-----------------------------------------------
你应该去查一下 ASCII 代码表
-----------------------------------------------

查表当然是去找规律,然后依据找到的规律写程序。。。。。。

PS:
补充一下,字符型的数据,C 中可以当成只有一个字节的整数对待,也就是说,字符型可以参与算术运算,相当于参与运算的字符的ASCII代码值在表达式中运算!!!


[ 本帖最后由 jack10141 于 2010-9-3 00:39 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-02 20:36
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
收藏
得分:2 
你把ch1=ch1+'A'-'a';改成    ch1=ch1+'a'-'A';
2010-09-02 20:38
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:2 
楼上正解。
2010-09-02 20:43
oldorab110
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2010-8-31
收藏
得分:0 
回复 2楼 jack10141
我查过了大A是65小A是97!可是我还是不明白啊!请说明白点好吗?
2010-09-02 20:43
oldorab110
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2010-8-31
收藏
得分:0 
不明白为什么a和A的顺序不用换?
2010-09-02 20:45
oldorab110
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2010-8-31
收藏
得分:0 
ch1=ch1-'a'+'A';
    ch2=ch2-32;
和这条ch1=ch1+'a'-'A';
    ch2=ch2+32;
有什么区别!除了是大写小写之外还有别的吗?他们怎么实现大写变小写或小写变大写的!请各位大哥大姐赐教!
2010-09-02 20:57
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
以下是引用oldorab110在2010-9-2 20:57:03的发言:

 ch1=ch1-'a'+'A';
    ch2=ch2-32;
和这条ch1=ch1+'a'-'A';
    ch2=ch2+32;
有什么区别!除了是大写小写之外还有别的吗?他们怎么实现大写变小写或小写变大写的!请各位大哥大姐赐教!ASCII
ASCII表中不管是大写字母还是小写字母都是增序排列的,
另外我们知道同一个字母小写的ASCII码值比大写的大32
于是最直接的,小写变大写就-32,大写变小写就+32,就可以了啊~
另外'a'-'A'就等于32,'A'-'a'就等于-32啊,现在理解了把!
2010-09-02 21:10
wplfx
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-9-2
收藏
得分:2 
大A是65小A是97,ch1=ch1+'A'-'a'; 就等于65+65-97=32(!)了因此是ch1=ch1+‘a’-‘A’
2010-09-02 21:10
wplfx
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-9-2
收藏
得分:0 
以下是引用wplfx在2010-9-2 21:10:29的发言:

大A是65小A是97,ch1=ch1+'A'-'a'; 就等于65+65-97=32(!)了因此是ch1=ch1+‘a’-‘A’
应该是33,呵呵
2010-09-02 21:11
快速回复:各位大哥大组,小弟刚学C ,请教个问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033790 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved