字符数组 字符数组 字符数组中的每一个元素都是用来存放 字符数据的,其定义如下 char数组名[数组长度] 例如: char a[10] 字符数组的初始化 char a[3]}={a,b3,c”}
字符数组 • 字符数组 字符数组中的每一个元素都是用来存放 字符数据的,其定义如下: char 数组名[数组长度] 例如:char a[10] 字符数组的初始化 char a[3]={‘a’,’b’,’c’};
字符数组 这样就把三个字符赋值到a[0到a[2]中 去了,如果花括号中提供的初值长度超 过了数组长度,则语法错误,如果小于 初值长度,则只将这些字符赋给数组前 面的元素,其余的自动定义为空字 (“0’) 字符数组的引用: 和普通数组一样,a0表示第一个元素
字符数组 这样就把三个字符赋值到a[0]到a[2]中 去了,如果花括号中提供的初值长度超 过了数组长度,则语法错误,如果小于 初值长度,则只将这些字符赋给数组前 面的元素,其余的自动定义为空字 (‘\0’) 字符数组的引用: 和普通数组一样,a[0]表示第一个元素
字符数组 字符串和字符串结束标志 C语言中,将字符串作为字符数组来处 理,该字符串的长度与数组的有效长度 相等,系统会对字符串常量自动加一个 V0’作为结束符 例如: char al={ hello} 等价于: char a[-" hello 等价于: char al{h',e',2l2,o;0)}; 该数组的实际长度为6,有效长度为5
字符数组 • 字符串和字符串结束标志 C语言中,将字符串作为字符数组来处 理,该字符串的长度与数组的有效长度 相等,系统会对字符串常量自动加一个 ‘\0’作为结束符 例如:char a[]={“hello”}; 等价于:char a[]=“hello”; 等价于:char a[]={‘h’,’e’,’l’,’l’,’o’,’\0’}; 该数组的实际长度为6,有效长度为5
字符数组 注意 字符数组并不要求其最后一个字符为 V0’,只有以下情况,系统会自动给 字符数组后加“0 1用字符串常量给数组赋值,系统给该 字符数组最后的元素设为‘V0 如: char a[}-good 2当赋初始值小于字符数组的长度时, 小于部分元素自动设为“0
字符数组 • 注意: 字符数组并不要求其最后一个字符为 ‘\0’,只有以下情况,系统会自动给 字符数组后加‘\0’ 1.用字符串常量给数组赋值,系统给该 字符数组最后的元素设为‘\0’ 如:char a[]=“good”; 2.当赋初始值小于字符数组的长度时, 小于部分元素自动设为‘\0’
字符数组 ·字符数组的输入输出 字符数组的输出方法有两种: 1用“%C格式,逐个元素的输出 2.用“%s3格式,将整个字符串一起输 例如: char al={helo printf(" % n,, a) 注意: 输出的字符不包括0
字符数组 • 字符数组的输入输出 ----字符数组的输出方法有两种: 1.用“%C”格式,逐个元素的输出 2.用“%s”格式,将整个字符串一起输 出 例如:char a[]={“hello”}; printf(“%S\n”,a); 注意: 1.输出的字符不包括‘\0’
字符数组 2用“%s3格式输出, printi函数的输出项 是字符数组名,而不是字符数组元素 例如: char al={helo0}: 正确: printf(oos,, a 错误: printf("%os,a[OD 3.如果字符数组的长度大于字符串实际长 度,只输出到“0’为止 例如: char a[10-{ hello”} printf(%Gs32a2),仅输出 hello
字符数组 2.用“%s”格式输出,printf函数的输出项 是字符数组名,而不是字符数组元素 例如:char a[]={“hello”}; 正确: printf(“%s”,a); 错误: printf(“%s”,a[0]); 3.如果字符数组的长度大于字符串实际长 度,只输出到‘\0’为止 例如:char a[10]={“hello”}; printf(“%s”,a); 仅输出hello
字符数组 4如果一个字符数组包含一个以上的 0’,则遇到第一个“0’时输出就 结束了 如: char a6}-{a,”b,'c,”0°,d,2)03}; pI rin os. a 其输出为:abc
字符数组 4.如果一个字符数组包含一个以上的 ‘\0’,则遇到第一个‘\0’时输出就 结束了 如:char a[6]={‘a’,’b’,’c’,’\0’,d,’\0’}; printf(“%s”,a); 其输出为:abc
字符数组 字符数组的输入 可以用scan函数来输入一个字符串 格式如下 char a 10 正确: scanf 27 os. a 错误: scanf(%s”&a) 注意: 输入的字符串长度一定要小于定义的长度
字符数组 ----字符数组的输入 可以用scanf函数来输入一个字符串 格式如下: char a[10]; 正确:scanf(“%s”,a); 错误:scanf(“%s”,&a); 注意: 输入的字符串长度一定要小于定义的长度
字符数组 注意 如果要用一个scan函数同时输如多 个字符串,则中间用空格隔开 例如: char a[5]b[5c[5] scanf(os%os%os, a, b, c) 如果输入为: how are you! 则how保存到a[10中 are保存到b[0]中 you保存到c0中
字符数组 注意一: 如果要用一个scanf函数同时输如多 个字符串,则中间用空格隔开 例如:char a[5],b[5],c[5]; scanf(“%s%s%s”,a,b,c); 如果输入为:how are you! 则how保存到a[10]中 are保存到b[10]中 you!保存到c[10]中
字符数组 注意二: 如果输入一个字符串时输入了“空 格”,则只将空格前的字符送到字符数 组中 例如: char a[20 scan f os. a printf(%os,a); 如果输入为: hello china! 则输出为: hello 空格后的字符并没有保存到字符数组中
字符数组 注意二: 如果输入一个字符串时输入了“空 格”,则只将空格前的字符送到字符数 组中 例如:char a[20]; scanf(“%s”,a); printf(“%s”,a); 如果输入为: hello china! 则输出为:hello 空格后的字符并没有保存到字符数组中