【 在 sqsl 的大作中提到: 】
: 数组内任何位置都可能出现数量不定的\0
: 比如:
: char arr[] = {'a', '\0', '\0', 'd', '\0'};
: ...................
c语言标准不支持这种字符串,
这种字符串pascal语言的专利, 因为, pascal字符串,在开始就记录了字符串长度,然后才是字符串数据。
c语言最近的实现就是使用字符数组, 但是,字符数组虽然可用动态分配,
但是,也只有分配长度, 没有使用长度, 这个需要自己负责记录使用了多少。
当然, 你也可用用非法字符提前填充, 那么, 实时计数长度可用检查是不是合法字符,
计数合法字符数量就能知道字符长度了, 话说, NULL(\0), 本身就不是合法字符。
--
FROM 115.171.244.*