1. 字符数组的定义和初始化
初始化字符数组的最简单方法是将每个字符分配给数组中的每个元素.
char str [10] = {'I',','a','m',','h','a','p','p','y'}; <
也就是说,将10个字符分配给str [0]至str [9] 10个元素
如果大括号中提供的字符数大于数组的长度,则将其视为语法错误;如果它小于数组的长度,则仅设置这些字符数组前面的那些元素,其余的元素将自动确定为空字符(即0').
2. 字符数组和字符串
在c语言中,将字符串视为字符数组. (不是C ++)
在实际应用中,人们关注的是有效字符串的长度而不是字符数组的长度. 例如,定义一个长度为100的字符数组c语言中空字符串数组,但是实际的有效字符仅为40. 该语言指定一个“字符串结束标志”,由字符'\ 0'表示. 如果存在第10个字符为“ \ 0”的字符串,则该字符串的有效字符为9. 换句话说,遇到第一个字符“ \ 0”时,表示字符串的结尾,它前面的字符就组成一个字符串.
系统还会自动将'\ 0'作为终止符添加到字符串常量. 例如,“ C程序”总共有9个字符,但在内存中占用10个字节,并且系统自动将最后一个字节'\ 0'添加到系统中. (可通过sizeof()函数验证)
使用结束标记'\ 0',字符数组的长度不太重要. 在程序中,通常会检测'\ 0'的位置来确定字符串是否结束,而不是根据数组的长度来确定字符串的长度. 当然,定义字符数组时应估计实际的字符串长度c语言中空字符串数组,以确保数组的长度始终大于字符串的实际长度. (在实际的字符串定义中,通常不指定数组的长度,例如char str [])
说明: '\ n'表示ASCII码为0的字符. 从ASCII码表中,您可以发现ASCII码为0的字符不是可以显示的字符,而是“空运算符”,即是不这样做. 将其用作字符串结尾符号不会产生额外的操作或添加有效字符,只会用于标识.
了解了用C语言处理字符串的方法后,请在初始化字符数组的方法中添加一个方法—也就是说,您可以使用字符串常量来初始化字符数组:
char str [] = {“我很高兴”};您可以省略花括号,如下所示
char str [] =“我很高兴”;
注意: 以上字符数组的总体分配只能在初始化字符数组时使用,而不能用于分配字符数组. 字符数组的分配只能为其元素一一分配. 以下分配方法有误
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-200645-1.html