| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1118 人关注过本帖
标题:请教一个简单的C语言问题
取消只看楼主 加入收藏
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
请教一个简单的C语言问题
输入一个字符,如果是大写字母就将其转换为小写字母再输出,不是的话就直接输出。下面是我写的程序,
为什么运行后,输入什么就输出什么? 不知道哪里出错了。
#include <stdio.h>
void main ()
{
    char c1,c2;
    c1=getchar();
    if ('c1'>='A'&&'c1'<='Z')
    {c2=c1+32;
    printf("%c",c2);}
    else
         printf("%c",c1);
   
}
搜索更多相关主题的帖子: C语言 
2011-07-23 21:20
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
回复 2楼 pcbaichi
这位兄台不妨指教一下

将疯狂进行到底!
2011-07-23 21:27
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
回复 4楼 pcbaichi
不会吧? 为什么呢?

将疯狂进行到底!
2011-07-23 21:36
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
以下是引用天雨流芳113在2011-7-23 21:45:51的发言:

#include <stdio.h>
void main ()
{
    char c1;
    c1=getchar();
    if (c1>='A'&&c1<='Z')
    {c1=c1+32;
    printf("%c",c2);}
   
}

这个把c2改成c1就可以了。谢谢。不过为什么我那样写就不行呢?

将疯狂进行到底!
2011-07-23 21:59
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
以下是引用天雨流芳113在2011-7-23 21:45:51的发言:

#include <stdio.h>
void main ()
{
    char c1;
    c1=getchar();
    if (c1>='A'&&c1<='Z')
    {c1=c1+32;
    printf("%c",c2);}
   
}

这个把c2改成c1就可以了。谢谢。不过为什么我那样写就不行呢?

将疯狂进行到底!
2011-07-23 21:59
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
以下是引用pcbaichi在2011-7-23 21:30:52的发言:

贴源码是不对的
#include<stdio.h>
int main()
{
    char c;
    c=getchar();
    printf("%c\n",(c>='A'&&c<='Z')?c+32:c);
    return 0;
}

这样应该是最简洁的了。谢谢。能不能告诉我写的 那个哪里错了?

将疯狂进行到底!
2011-07-23 22:02
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
以下是引用lz1091914999在2011-7-23 21:43:46的发言:

#include <stdio.h>

int main(void) {
    putchar(getchar() | 0x20);
    return 0;
}

这个看不明白。 请问0x20是什么来的?

将疯狂进行到底!
2011-07-23 22:05
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
回复 15楼 pcbaichi
不知道。 我的是错的。 应该要去掉单引号的的。

将疯狂进行到底!
2011-07-24 13:15
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
回复 16楼 lxh3319
确实如此。原来错在这里。哈哈。 那如果给c1加了‘’变成了什么了? 应该不存在这个字符把?

将疯狂进行到底!
2011-07-24 13:17
凌云木
Rank: 1
来 自:广东
等 级:新手上路
帖 子:25
专家分:3
注 册:2011-7-23
收藏
得分:0 
以下是引用zjslwyp在2011-7-23 23:43:55的发言:

你写的   if ('c1'>='A'&&'c1'<='Z')把字符c1与A和Z比较,而不是c1里的储存的字符与A和Z比较。只要if (c1>='A'&&c1<='Z')
就可以了,你就错在这边。

明白了。确实如此。谢谢。

将疯狂进行到底!
2011-07-24 13:20
快速回复:请教一个简单的C语言问题
数据加载中...
 
   



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

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