目录
最近对一个知识点总结一下,就是关于字符的输入和输出
首先字符分为单字符和字符串,单个字符一般放在一个char型变量或者长度为1的数组里面,而字符串一般放在一个数组里面
1.单字符
首先,我们要知道字符的输入和输出都是char类型的 ,而单个字符使用scanf和printf时需要使用%c作为占位符,那么我们就可以写出下面的代码:
char ch;//定义字符
scanf ("%c",&ch);//输入字符
printf("%c",ch;//输出字符
这样我们就可以输入和输出一个字符 (要注意,这里的单个“字符”,可以是一个数字,也可以是一个英文字母,但是不可以是汉字)
除了这个方法,我们还可以使用一个库函数getchar和putchar来进行单个字符的输入和输出,这个函数的头文件是#include <stdio.h>,所以我们不需要再另外写头文件了,具体操作就是:
char ch;//定义字符
ch=getchar();//指出输入方式
getchar();//输入字符
putchar(ch);//输出字符
这样我们就可以通过输入单字符并得到它的输出了
2.字符串
字符串和单字符一样,使用char类型变量,不过字符串的占位符是%s,字符串也相对来说更有门道一点,并且字符串还可以输入输出汉字
首先呢字符串的定义一般选择数组具体是下面这样:
char str[20];//定义一个数组作为字符串的“容器”
scanf("%s",str);//输入字符串(这里由于字符串是定义在数组里的,所以不用取地址&)
printf ("%s",str);//输出字符串
那么让我们输出试试看
很完美,没有一点问题,那我们输入汉字和数字试试
还是没有任何问题
那么如果打一个Hello World 呢?
我们会发现编译器“偷懒”了,它并没有像我们想要的那样输出一个句子,而是输出了一部分就不输出了
其实,这是因为编译器使用scanf时会把空格当做一个“休止符”,当遇到Hello后面的空格时,编译器默认这个读取程序休止,所以只读入了空格前面的问题,那么我们要怎么解决呢?
这个时候我们可以使用另外一个库函数gets和puts来进行对数组的输入和输出,这个时候,数组的输入就不再是以一个空格作为休止符,而是以回车作为休止,那么我们就可以完整地输出一个句子了:
char str[20];//定义字符串
gets(str);//输入字符串
puts(str);//输出字符串