字符串、字符和字节

三者关系:

字符串是由一个个字符组成的,每个字符又由一个或多个字节来表示,每个字节又由8个bit位来表示。

字符:计算机中使用的文字和符号,比如1、2、A、B、%等等。

字节(Byte):一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。

不同编码里,字符和字节的对应关系不同:

①ASCII码中,一个英文字母占一个字节的空间,一个中文汉字占两个字节的空间。
②UTF-8编码中,一个英文字符等于一个字节,一个中文等于三个字节。
③Unicode编码中,一个英文等于两个字节,一个中文等于两个字节。

符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

④UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。
⑤UTF-32编码中,世界上任何字符的存储都需要4个字节。

字符串相关函数

头文件string.h包含了使用字符串函数所需的原型和声明

字符串长度:它所包含的字符个数。NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包含NUL字节。

库函数strlen的原型如下:

size_t strlen(char const *string);   //注意strlen返回一个类型为size_t的值。这个类型是在头文件stddef.h中定义的,它是一个无符号整数类型。

在表达式中使用无符号数可能导致不可预料的结果。例如,

if (strlen(x)>=strlen(y))
if (strlen(x)-strlen(y

你可能感兴趣的:(C/C++,字符串,c语言,编程语言)