第8章字符串与字符数组
1
字符串及存储方式
字符数组及字符串的赋值
字符数组及字符串的输出
二维字符数组
常见的字符串函数
字符串与字符数组
2
字符串及存储方式
‘y’与”y”不同。前者是字符常量,后者是字符串常量。字符常量可以赋给字符变量,后者只能赋给字符数组。
字符串的存储方式存放在字符数组中,以’\0’为结束标志。
y
y \0
3
字符串与字符数组不同
字符数组是一种构造数据类型,而字符串是一种常量类型。
字符串存放在字符数组中.
字符串常量以’\0’作为结束标记。
字符数组不仅仅只用来表示字符串常量,因此不一定要有’\0’。
字符数组的大小不能小于字符串的长度。
4
字符数组及字符串的赋值
初始化
逐一赋值
接受输入
5
初始化
数组的初始化方式即一个字符一个字符地赋给各元素,和前面讲的数组初始化类似。例:char word[10]={L’,’a’,’n’,’q’,’u’,’a’,’g’,’e’};注意:如果用该数组表示字符串,则应当人为地加上’\0’. char word[10]={L’,’a’,’n’,’q’,’u’,’a’,’g’,’e’,’\0’};
6
初始化
将字符串赋给指定的数组(字符数组特有的方式)例:char word[]={ “Language”};
说明:这种方式的赋值,就意味着系统将该字符数组用来存放字符串常量,系统会自动地加上’\0’.
7
逐一赋值
和前面学习的其它类型的数组类似。如: char word[10];
word[0]=‘L’; word[1]=‘a’; word[2]=‘n’; word[3]=‘g’; …
说明:在这种方式中,如果该字符数组用来存放字符串常量,同样要人为地在最末加上’\0’.
8
注意:以下3种情况均不允许:
char str2[3]=“GOOD”; (超过长度)
char str3[5];
str3=“GOOD”; (初始化从声明中分离)
char s1[4] =“abc";
char s2[4];
s2=s1; (数组名不能用作赋值号左侧)
9
接受输入
逐个输入向数组元素输入一个字符,和前面讲的数组初始化类似。
例: char name[5]; for(int i=0;i<5;i++) { scanf(“%c”,&name[i]); }
10
C语言 字符数组与字符串 来自淘豆网m.daumloan.com转载请标明出处.