文章目录
- 一、字符专用接收函数
- 1.1 scanf实现字符接收
- 1.2 字符专用接收函数getchar
- 1.3 练习
- 1.4 利用循环使字符接收函数接收字符串的元素
- 二、字符专用输出函数
- 2.1 printf实现打印字符
- 2.2 字符专用输出函数putchar
提示:以下是本篇文章正文内容,下面案例可供参考
一、字符专用接收函数
在c语言中,想要输入字符有两种方法,第一种是scanf函数输入字符,第二种则是字符专用接收函数
1.1 scanf实现字符接收
关于scanf的具体详细的使用方法可以看小编所写的详解printf和scanf
int main()
{
char arr;
scanf("%c", &arr);#
printf("%c",arr);
return 0;
}
1.2 字符专用接收函数getchar
getchar定义
代码演示
int main()
{
char arr;
arr = getchar();
printf("%c",arr);
return 0;
}
注意
- 字符专用接收函数一次只能接收一个字符,如果输入多个字符只获取第一个字符。
- 字符接收函数没有参数,字符接收函数是从键盘上获取字符值。
1.3 练习
键盘上输入hello,输出是什么字符?
int main()
{
char arr;
arr = getchar();
printf("%c",arr);
return 0;
}
1.4 利用循环使字符接收函数接收字符串的元素
在这里字符接收函数,一次只能接收一个字符,如果想要接收字符串,我们可以用到循环
int main()
{
char arr = '0';
do
{
if(arr != '\n')
{
arr = getchar();
printf("%c", arr);
}
} while (arr != '\n');
return 0;
}
分析
do while循环条件是获取当前的字符,所以他的结束条件是输入的该字符串函数不是换行符(’ \ n’),因为我们在输入一个字符串以后,我们会按下回车键,按下回车键,获得的当前字符为换行符,所以我们获得不是换行符的时候,才说明我们还没有获取结束,如果我们获得当前字符是回车符,那就说明字符串的字符还没有获取结束。所以在这里我们输入一组字符串,先是接收第一个字符,然后打印,判断不是换行符,然后我们在获取下一个字符。
疑问
为什么我们使用getchar接收字符串进行循环打印,为什么能全部打印出来,而不是每次打印第一个字符呢?字符接收函数不是接收一个字符么,为什么还能打印出后面所有的字符呢?
这是因为scanf和getchar并不是直接从键盘上拿数据,而是存在一个缓冲区域,然后getchar从缓冲区域一个一个进行拿值,直到所有值拿完,我们这里拿完第一个字符元素后,缓冲区域还剩下剩下的字符元素,而之前的元素被读走了,不会在存在于缓冲区域,所以可以使用循环接收所有的字符而不是只接收第一个。
二、字符专用输出函数
2.1 printf实现打印字符
关于printf具体详细的使用方法可以看小编所写的详解printf和scanf
int main()
{
char ch = getchar();
printf("%c",ch);
return 0;
}
2.2 字符专用输出函数putchar
putchar定义
代码演示
int main()
{
char ch = getchar();
putchar(ch);
return 0;
}
注意
-
字符专用输出函数一次只能输出一个字符,如果输出多个字符只输出第一个字符。
-
字符输出函数有参数,字符输出函数参数是字符表达式 (变量,或者字符)。
-
使用方法和getchar一样,使用循环输出原理和getchar一样都是从缓冲区域进行输出。