【摘要】:用字符串常量对字符数组初始化。图7-8字符数组的存储情况系统存储字符串常量时会自动在末尾加上“\0”,把“\0”作为字符串结束标志。编写程序,用字符数组存放字符串并输出。定义字符数组,并完成初始化赋值,使用循环结构逐个引用元素。printf()函数中的输出项是字符数组名而不是数组元素。
(1)对数组元素连续赋值,字符常量放在一对大括号中以逗号分隔。
例如:
若对所有元素都赋值,可以省略数组长度,由系统根据值的个数确定数组长度。当然也可以只给部分元素赋值。
例如:
只给前5个元素赋值,其余元素由系统自动赋值为“\0”(即空字符)。
(2)用字符串常量对字符数组初始化。
例如:
或者省略大括号,写成“char c[10]=“hello”;”,字符数组中内容如图7-8所示。
图7-8 字符数组的存储情况
系统存储字符串常量时会自动在末尾加上“\0”,把“\0”作为字符串结束标志。所以在用字符数组存放字符串时,数组的长度要比实际的字符个数多1,以便存放“\0”。(www.xing528.com)
例如:char c[5]="hello";
显然数组提供的空间不够用,“\0”会占用数组以外的存储单元,极有可能破坏其他数据的正确。
注意:字符数组长度与字符串的实际长度是不一样的。
【例7-5】编写程序,用字符数组存放字符串并输出。
【分析】定义字符数组,并完成初始化赋值,使用循环结构逐个引用元素。
分别采用两种方法编写程序。
方法1:
方法2:
程序运行结果如图7-9所示。
图7-9 例7-5的运行结果
【说明】两种方法结果一样,但第二种方法更简洁些。第一种采用“%c”逐个输出字符,第二种采用“%s”输出整个字符串。若用“%s”输出,则遇到“\0”就结束输出,且输出的字符中不包含“\0”。printf()函数中的输出项是字符数组名而不是数组元素。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。