关于putchar()函数
#include<stdio.h>int main()
{
int ch;
printf("请输入一个句子:");
while((ch=getchar())!='\n')
{
if('A'<=ch&&ch<='Z')
{
ch=ch+32;
}
else
{
ch=ch-32;
}
}
putchar(ch);
return 0;
}
运行以后什么都不显示,如果将putchar(ch)放入while内且外面添加一个putchar('\n')就可以正常运行了,putchar(ch)不是直接输出字符吗,为什么是错误的呢??
谢谢大佬们的指导。。
本帖最后由 jhq999 于 2021-8-13 06:16 编辑
int main(int x)
{
int ch={0},i=0;
printf("请输入一个句子:");
while((ch=getchar())!='\n')
{
if('A'<=ch&&ch<='Z')
{
ch=ch+32;
}
else
{
ch=ch-32;
}
i++;
}
for (int j = 0; j < i;j++)
{
putchar(ch);
}
getchar();
return 0;
}
因为puchar()只能输出一个字符。你的只是输出最后的回车'\n' 出了循环的 ch = '\n' (最后输入是回车)
所以循环外 putchar(ch) 输出ch字符‘\n’(\n啥也不输出)
放在循环里面就每次循环都输出一下ch
#include <stdio.h>
int main()
{
char ch={0}; //定义字符数组
int i=0;
printf("请输入一个句子:");
while((ch=getchar())!='\n') // 循环检验
{
if('A'<=ch&&ch<='Z') // 大小写转换
{
ch=ch+32;
}
else
{
ch=ch-32;
}
i++;
}
for (int j = 0; j < i;j++) //循环输出字符数组
{
putchar(ch); // 一次只能输出一个字符
}
return 0;
}
页:
[1]