字符转换程序运行为什么不对

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:18:48
#include"stdio.h"
main()
{
char ch;
while((ch=getchar()!='\n'))
{
if(ch>='a'&&ch<='z') putchar(ch-'a'+'A');
else if(ch==' ') continue;
else putchar(ch) ;
getch();
}
}

输出的是怪字符 晕

#include"stdio.h"
#include"string.h"
main()
{
char ch;ch=getchar();
while(ch!='\n') //你原来的判断条件为表达式的值,总为1;
{
if(ch>='a'&&ch<='z') putchar(ch-'a'+'A');
else if(ch==' ') continue;
else putchar(ch) ;
getchar();//用来吸收上一个getchar()时的'\n';
ch=getchar();
}
}
改成这样就对了。

#include"stdio.h"
main()
{
char ch;
printf("Please Input a number:\n");
ch=getchar();
while(ch!='\n')
{
if(ch>='a'&&ch<='z') putchar(ch-'a'+'A');
else if(ch==' ') continue;
else putchar(ch) ;
getchar();
printf("\nPlease Input a number:\n");
ch=getchar();
}
}
借用楼上兄弟的代码

char ch;ch=getchar();
while(ch!='\n') //你原来的判断条件为表达式的值,总为1;

这样就行了