大家好,我是酒点,今天给大家讲的是字符数组和字符串,在C语言当中,字符数组,字符串也是一个很重要的内容,而且非常容易出错,因此希望大家在学习的时候认真对待。
首先我们看一下字符数组,字符数组是元素的数据类型为字符类型的数组
char c[10];
char ch[3][4];
也就是类型变了,后面的一维数组还是二维数组都可以。那么接下来我们来看,字符数组的初始化
- 逐个字符初始化
- 注意每个字符用单引号
一提字符我们就要自然想到ascll码表,练习:
字符串
- C语言中无字符变量,一般字符数组处理字符
- 字符串结束标志:‘\0’
单引号只能用一个字符,而双引号能用多个字符,
循环打印
直接打印字符串
错误示范
ch2是字符数组不是字符串 因此有瑕疵。不是字符串不能用%s 。
练习:从键盘输入字符串并打印出scanf
我们可以看到输入how are you的时候输出就不对,这是因为scanf遇到空格就停止。
从键盘输入字符串-scanf-空格的处理
问题:如何让scanf()函数正确接受有空格的字符串?,如,I love you!
分析:如果使用scanf输入字符串,并且字符串可能包含空格,则需要转义字符
%[^\n]
这样可以输入以换行符为结尾的字符串,而不管它中间是否包含空格。
字符串用双引号
字符串输入函数-gets
char*gets(char*s)
从键盘输入—以回车结束字符串放入字符数组,并自动加‘\0’
gets()函数比scanf简洁,输入字符串有空格也可以输入
输入串长度要注意,保证数据组内存空间够用
gets函数不建议使用,建议使用fgets
字符串输出函数puts
功能:向显示器输出字符串,并加追换行
说明:字符数组必须以‘\0’结束。针对的是字符串的输入和输出哦😐其实呢和printf和scanf是一样的。