| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 547 人关注过本帖
标题:字符转换不成功
只看楼主 加入收藏
AM00发
Rank: 1
等 级:新手上路
帖 子:2
专家分:6
注 册:2018-9-3
结帖率:0
  已结贴   问题点数:20  回复次数:9   
字符转换不成功
大小写能够正常输出字符就有点尴尬了
#include <stdio.h>
void main (void)
{
    int a;
    char ch,sh;

    for (a=0;a<=8;a++)
    {
     scanf("%c",&ch);
        if (ch<='Z'&&ch>='A'||ch<='z'&&ch>='a')
        {
                if (ch<='Z'&&ch>='A')
                {
                     sh='A'+('Z'-ch);
                    printf("%c",sh);
                }
                else if(ch<='z'&&ch>='a')
                {
                    sh='a'+('z'-ch);
                    printf("%c",sh);

                }
                else
                {
                    printf("%c",ch);
                }
                printf("\n");
        }
        
    }
}
搜索更多相关主题的帖子: 字符 转换 成功 void printf 
2018-09-25 09:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:215
帖 子:6778
专家分:30031
注 册:2014-5-20
  得分:3 
        //scanf("%c",&ch);
        scanf(" %c",&ch);
2018-09-25 09:33
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
  得分:3 
你的程序只会处理   a~z和A~Z直接的数据,其他的不会处理。你的问题是什么呢?

126邮箱联系方式:no1xijin@126. com
2018-09-25 10:12
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
  得分:3 
main前面是int
大小写的转换码你写错了
大写换小写sh=ch+('a'-'A');
小写换大写sh=ch-('a'-'A');
你可以试一下。


C果然是有点难啊!
2018-09-25 18:32
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
  得分:3 
意思是说出了大小写字母外,其他输入的标点等不输出吧
2018-09-26 22:37
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
  得分:0 
除了大小写字母外,其他的原样输出

C果然是有点难啊!
2018-09-27 09:07
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:360
专家分:1054
注 册:2018-5-7
  得分:3 
#include <stdio.h>
 void main (void)
 {
     int a;
     char ch,sh;

     for (a=0;a<=8;a++)
     {
      scanf("%c",&ch);
         if (ch<='Z'&&ch>='A'||ch<='z'&&ch>='a')
         {
                 if (ch<='Z'&&ch>='A')
                 {
                      sh='A'+('Z'-ch);
                     printf("%c",sh);
                 }
                  if(ch<='z'&&ch>='a')
                 {
                     sh='a'+('z'-ch);
                     printf("%c",sh);

                 }
         }
                 else
                 {
                     printf("%c",ch);
                 }
         
     }
     printf("\n");
 }
2018-09-27 21:10
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
  得分:0 
if (ch<='Z'&&ch>='A'||ch<='z'&&ch>='a')

第一个if语句就限定了只判断a-z的大小写字母,其余的不判断

要判断其他的符号,就需要把
else
                {
                    printf("%c",ch);
                }
                printf("\n");

放到第一个if语句的大括号外
2018-09-28 22:49
编程之客Vae
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2018-9-29
  得分:3 
你写的程序有问题,首先第一个if是判断a~z以及A~Z,如果判断结果为真,则执行if里面的内容。否则如果输入其它字符就不成立,此时要把这个字符输出来,就要用else,所以说那个你写在里面的else要把它放到外面。而且你里面用两个if判断结果也是不规范的应该用if...else
2018-09-29 14:41
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:138
帖 子:1510
专家分:7661
注 册:2014-5-19
  得分:3 
连具体问题怎么体现的都没说出来。那么只能说,只要编译能通过的都没有问题。
2018-09-29 16:11
快速回复:字符转换不成功
数据加载中...
 
   



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

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