getchar

代码1:#include<stdio.h>

#include<stdio.h>
int main()
{
int ch;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}

字符串的输入输出,没什么好说的。

代码2:

#include<stdio.h>
int main()
{
int ch;
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}

这段代码是将输入字符串的数字0到9进行输出,其他字符不做输出

另外getchar结合ASCII表可实现大小写转换,符号、数字等的转换。

代码3:

#include<stdio.h>
int main()
{

int ret=0;
int ch = 0;
char password[20] = { 0 };
printf("输入密码:\n");
scanf("%s", password);
while((ch=getchar())!='\n')
{
;
}
printf("确认密码(y/n)\n");
ret = getchar();
if (ret == 'y')
printf("确认成功\n");
else
printf("放弃确认\n");
return 0;
}

这个加入while的循环

​scanf()​​ 可输入不包含空格的字符串,不读取回车,空格和回车表示输入完毕。

​getchar()​​ 只能读取用户输入缓存区的一个字符,包括回车。

输入密码时可能会有空格之类的,scanf只能获取空格前面的字符,剩下的字符留给getchar