#include<stdio.h>
void main()
{
write:char a;
printf("请输入一个小写字母:");
a=getchar();
if(a<97||a>122){
printf("错误,您输入的不是小写字母!!!\n");
getchar();//(1)
goto write;
}
else{
printf("相应的大写形式:");
putchar(a-32);
printf("\n");
}
}
//开始我没有加(1)处的getchar();
结果输入一个不是小写字母的时候,"错误,您输入的不是小写字母!!!“写了两遍,加上(1)处的getchar()后就没有了这种情况,这是因为,当你输入一个不是小写字母的东东的时候,比如说"1",然后按回车,a实际上就装上了两个字符,"1"和回车,但是getchar()只是获得一个字符,那么a只能得到一个字符,另一个储存在缓存里,这两个都不是小写字母,所以要经过两次if语句,这时加上(1)处getchar()就获取了缓存里的字符,这样可以了。
(此程序的缺陷:不能输入多个字符,比如"123")
void main()
{
write:char a;
printf("请输入一个小写字母:");
a=getchar();
if(a<97||a>122){
printf("错误,您输入的不是小写字母!!!\n");
getchar();//(1)
goto write;
}
else{
printf("相应的大写形式:");
putchar(a-32);
printf("\n");
}
}
//开始我没有加(1)处的getchar();
结果输入一个不是小写字母的时候,"错误,您输入的不是小写字母!!!“写了两遍,加上(1)处的getchar()后就没有了这种情况,这是因为,当你输入一个不是小写字母的东东的时候,比如说"1",然后按回车,a实际上就装上了两个字符,"1"和回车,但是getchar()只是获得一个字符,那么a只能得到一个字符,另一个储存在缓存里,这两个都不是小写字母,所以要经过两次if语句,这时加上(1)处getchar()就获取了缓存里的字符,这样可以了。
(此程序的缺陷:不能输入多个字符,比如"123")