数组(三)

四、字符数组

(1)字符数组的定义

            有一定顺序关系的若干个字符型变量的集合,就是字符数组。可以是一维数组,也可以是二维数组。

            定义形式:

                           char ch[5]; 

                           char ch[2][3];

(2)字符数组初始化

            ***和普通数组的初始化相同,逐个为数组元素赋值。

                    char ch[6] = { 'a' , 'b', 'c' , '1' , '2' , '3' };

                    char ch[][3] = { { 'a' , 'b' , 'c' } , { '1' , '2' , '3' } };

            ***使用字符串常量来对字符数组进行初始化。

                    char ch[6] = " abcde ";

                    char ch[] = " abcde ";

                    相当于: char ch[6] = { 'a' , 'b', 'c' , 'd' , 'e' , '\0' };

五、字符串

(1)字符串的定义

        字符串指的是以“\0”作为结束字符的一组字符,在C语言中没有专门的字符串常量,通常用一个字符数组来存放一个字符串。因此当把一个字符串存入一个数组时,也把字符串的结束符"\0"存入数组,并以此作为字符串是否结束的标志。

        char ch[] = " apple ";

        相当于:char ch[] = { 'a' , 'p' , 'p' , 'l' , 'e' ,'\0' };

      用字符串方式对字符数组初始化时,比用字符逐个初始化要多占用一个字节,用于存放字符串结束标志"\0"。

     “\0”是由C编译系统自动加上去的。由于使用了“\0”标志,所以在用字符串进行初始化时,经常省略数组的长度。

(2)字符串的输入输出

        使用格式化符号"%s",来表示处理的是字符串。

        scanf的各输入项必须以地址方式出现,如&a,&b。但是由于数组名就代表了数组的首元素地址,所以只需要写数组名即可,不用加取地址符”&”。

        用scanf函数输入字符串时,是以空格作为字符串的结束,因此,若输入字符串中有空格,则空格后面的字符串奖不存到数组中。

                    

猜你喜欢

转载自blog.csdn.net/m0_37671794/article/details/80345613