字符集指一个系统支持的所有抽象字符的集合。
常见的字符集主要有ASCII 字符集,Unicode字符集,GB2312字符集等。
ASCII 字符集
该字符集存储字符个数有限,为了消除这个缺陷,使各种语言可统一编码,双字节编码应运而生。在双字节字符集中,一个字符可有1个或2个字节组成。这就是UTF编码,即通常所说的Unicode码。
windows系统底层全部采用Unicode编码,Linux则采用UTF-8编码。
只有以NULL介绍的字符数组才是字符串,否则只是一般的字符数组。
char szName[]="Steve Jobs";
strlen(szName)=10;
sizeof(szName)=11;
C字符串,可以利用“=”进行初始化,但初始化之后,不能利用“=”对C字符串进行赋值操作。
char szName[]={"1","2","3"}; strlen(szName)=>3;这样会出现问题。
char szName[3]="123"; strlen(szName)=3;
strlen计算的字符串长度是不包括NULL在内的字符串长度。NULL是字符串的必要组成部分,但不占用字符串的长度。
所说的字符串地址是指字符串的首元素的内存地址。
注意事项:
在创建动态字符串数组时,通过new 或 malloc申请内存时,一定要考虑到NULL也占用空间,以防止字符串因为无NULL结束符,而导致无法预测的错误。