15588686105 发表于 2020-9-4 17:32:36

转换大小写帮忙看一下谢谢

#include<stdio.h>
int main()
{
        char a;
        printf("请输入需转变的英文字符串\n");
        printf("最后输入一个‘.’作为结束\n");
        while(a=getchar()!='.');
        {
                if (a >= 'A' && a <= 'Z')
                        a=a+32;
                else if (a >= 'a' && a <= 'z')
        {
                        a=a-32;}
                        printf("%c\n",a);
}
        return 0;
}
想用while getchar来实现整个字符串的转化,但运行结果为空是为什么啊
还有 怎么不用'.'作为结束命令 用回车作为啊

baige 发表于 2020-9-4 17:37:10

while后面的分号去掉,a = getchar()加个括号
#include<stdio.h>
int main() {
        char a;
        printf("请输入需转变的英文字符串\n");
        printf("最后输入一个‘.’作为结束\n");
        while((a=getchar())!='.') {
                if (a >= 'A' && a <= 'Z')
                        a=a+32;
                else if (a >= 'a' && a <= 'z') {
                        a=a-32;
                }
                printf("%c\n",a);
        }
        return 0;
}

15588686105 发表于 2020-9-4 20:02:20

baige 发表于 2020-9-4 17:37
while后面的分号去掉,a = getchar()加个括号

老哥能解释下吗{:10_266:}

baige 发表于 2020-9-4 20:23:01

。。。

baige 发表于 2020-9-4 20:43:41

第一个优先级问题你的代码先执行getchar(),然后与'.'进行判断返回0,1, 第二个分号会导致只有输入最后一个放回0,退出while()循环去做下面的运算

15588686105 发表于 2020-9-5 18:19:51

baige 发表于 2020-9-4 20:43
第一个优先级问题你的代码先执行getchar(),然后与'.'进行判断返回0,1, 第二个分号会导致只有输入最后一个 ...

谢谢老哥
页: [1]
查看完整版本: 转换大小写帮忙看一下谢谢