在C(不是C++)中,我们可以考虑几种处理字符串长度的方法:
只需依赖null终止符(\0):我们假设该字符串不包含\0.将字符串存储到char数组并\0在末尾追加.使用strlen()我们需要它的大小时的功能.
将字符和长度存储到struct:
typedef struct _String {
char* data;
int size;
} String;
使用另一个变量来存储长度:例如,
char name[] = "hello";
int name_size = 5;
some_func(name, name_size, ...);
就个人而言,我更喜欢使用第二种方法
它可以覆盖一些包含\0在中间的"怪异"字符串.
我们可以实现一些功能,如string_new(),string_del(),string_getitem(),等写一些"OOP般"的代码.
我们没有两个(或更多)变量来处理字符串及其长度.
我的问题是:在C中处理字符串最常用的方法是什么?(特别是:当我们必须使用很多字符串时(例如编写一个解释器))
谢谢.