鱼C论坛

 找回密码
 立即注册
查看: 1411|回复: 6

[已解决]while课后题求解

[复制链接]
发表于 2019-9-25 22:26:04 | 显示全部楼层 |阅读模式
2鱼币
#include <stdio.h>

int main()
{
        int ch, count = 0;

        printf("请输入一行英文句子:");

        while ((ch = getchar()) != '\n')
        {
                if (ch >= 'A' && ch <= 'Z')//A--Z是ASCII 码?
                {
                        count = count + 1;
                }
        }

        printf("你总共输入了%d个大写字母!\n", count);

        return 0;
}
if (ch >= 'A' && ch <= 'Z')//A--Z是ASCII 码?



#include <stdio.h>

int main()
{
        int ch;
        printf("输入字母:");
        while ((ch=getchar())!='\n')
        {
                if(ch>='A'&& ch<='Z')
                {
                        ch=ch-'A'+'a';
                }
                else if(ch>='a'&& ch<='z')
                {
                        ch=ch-'a'+'A';
                }

                putchar(ch);
        }
        putchar('\n');

        return 0;
}

                if(ch>='A'&& ch<='Z')
                {
                        ch=ch-'A'+'a';
                }
                else if(ch>='a'&& ch<='z')
                {
                        ch=ch-'a'+'A';
                }
    -'A'+'a'?这是什么意思怎么定义的?

今天先到这  明天还要上班   后面的代码是越来越看不懂了...真想抛开看看到底是怎么回事...
最佳答案
2019-9-25 22:26:05
yixinwenxin 发表于 2019-9-26 17:45
那么— 号 + 号是什么意思?


查ASCLL 码  大写字母字符  'A'(65)  和小写字符   'a'(97)   它们就相差 32位  大写转换小写 +32  小写转换大写 -32      
   
if(ch>='A'&& ch<='Z')   
                {
                        ch=ch-'A'+'a';   //这里判断出大写  ch(65-90之间)  - 大写最小的 'A'(65) +小写最小的'a'(97)
  比如 ch='B'    'B' 的ASCLL 码是 66    ch(66)-'A'(65)+'a'(97)=ch(98)  小写 'b'  的ASCLL 码就是  98    大写转换小写就成功了   小写转换大写 同理
   

最佳答案

查看完整内容

查ASCLL 码 大写字母字符 'A'(65) 和小写字符 'a'(97) 它们就相差 32位 大写转换小写 +32 小写转换大写 -32 if(ch>='A'&& ch
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-25 22:26:05 | 显示全部楼层    本楼为最佳答案   
yixinwenxin 发表于 2019-9-26 17:45
那么— 号 + 号是什么意思?


查ASCLL 码  大写字母字符  'A'(65)  和小写字符   'a'(97)   它们就相差 32位  大写转换小写 +32  小写转换大写 -32      
   
if(ch>='A'&& ch<='Z')   
                {
                        ch=ch-'A'+'a';   //这里判断出大写  ch(65-90之间)  - 大写最小的 'A'(65) +小写最小的'a'(97)
  比如 ch='B'    'B' 的ASCLL 码是 66    ch(66)-'A'(65)+'a'(97)=ch(98)  小写 'b'  的ASCLL 码就是  98    大写转换小写就成功了   小写转换大写 同理
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-25 23:53:26 From FishC Mobile | 显示全部楼层
int ch是整形, getchar()获取一个字符,int ch=getchar()是获取一个字符把字符赋值给ch,ch是整型,从而把字符转成int型的ASCII码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-26 05:56:52 | 显示全部楼层
本帖最后由 画载舟中 于 2019-9-26 06:35 编辑

    if(ch>='A'&& ch<='Z')
                {
                        ch=ch-'A'+'a';  // 看这里的 ch  大写ASCII 码 多少 - 'A'(65)  ASCII 码 + 'a'(97) ASCII 码得出 ch 大写的小写   
                }
                else if(ch>='a'&& ch<='z')
                {
                        ch=ch-'a'+'A';  //大写和小写相差也就 32 可以   小写 转大写 ch=ch - 32;  大写转 小写 ch = ch+32;
                }

                        'A'  'Z' 英文符号 单引号 'a'   'z'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-26 10:08:37 | 显示全部楼层
#include <stdio.h>

int main()
{
        int ch, count = 0;

        printf("请输入一行英文句子:");

        while ((ch = getchar()) != '\n')
        {
                if (ch >= 'A' && ch <= 'Z')//A--Z是ASCII 码?,输入的是字符中,内存中放的是ASCLL码 ,ch是以ASCII码形式存放。
                                                     // 比较大小是用ASCII码比较,输入为ABCD...Z时,count+1,
                {
                        count = count + 1;
                }
        }

        printf("你总共输入了%d个大写字母!\n", count);

        return 0;
}
if (ch >= 'A' && ch <= 'Z')//A--Z是ASCII 码?



#include <stdio.h>

int main()
{
        int ch;
        printf("输入字母:");
        while ((ch=getchar())!='\n')
        {
                if(ch>='A'&& ch<='Z')//比较大小用ASCII码比较
                {
                        ch=ch-'A'+'a';把大写字母变成小写字母,ch 是ASCLL码
                }
                else if(ch>='a'&& ch<='z')
                {
                        ch=ch-'a'+'A';//把小写字母变成大写字母,ch 是ASCLL码
                }
                }
                putchar(ch);
        }
        putchar('\n');

        return 0;
}

评分

参与人数 1荣誉 +1 鱼币 +3 收起 理由
yixinwenxin + 1 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-26 10:48:17 | 显示全部楼层
  1.                 if(ch >= 'A'&& ch <= 'Z') ch = ch - 'A' + 'a'       ; // 如果 ch 是英文大写字符,那就把它改成小写
  2.                 else if(ch >= 'a' && ch <= 'z') ch = ch - 'a' + 'A' ; // 否则,如果 ch 是英文小写字符,那就把它改成大写
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-9-26 17:45:43 | 显示全部楼层

那么— 号 + 号是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 06:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表