运行后的结果与我想的不一样,求救!!!
#include<stdio.h>#include<ctype.h>
int main(void)
{
char ch;
while((ch=getchar())!='\n')
{
if(toupper(ch))
toupper(ch);
else
tolower(ch);
}
putchar(ch);
return 0;
}
我的意思是输入大写字母,打印它的小写字母,反之亦然,输入小写字母,打印它的大写字母
按照楼主的思路改了一下代码,VC++6.0完美运行
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char ch;
while((ch=getchar())!='\n')
{
if(ch == toupper(ch))
ch = tolower(ch);
else
ch = toupper(ch);
putchar(ch);
}
return 0;
}
首先,你的if语句是必然执行的(接受的ASCII非0), 其次,你的转化函数的返回值没有付给一个变量,执行的没有意义.最后,getchar还是接受了回车,单步调试发现的,这样导致ch的值也被覆盖了.
页:
[1]