我正在尝试实现一个函数,该函数接受一个字符串来解析和分隔字符串作为输入,然后返回一个包含这些解析元素的 char 数组,如果两个分隔符相邻,则包括空字符。
以下是我当前的代码:
String* _split(String self, String delim) {
char* selfCharArr = _get_value(self, NULL);
char* delimCharArr = _get_value(delim, NULL);
char** tokens = calloc((_length(self) + 2), sizeof(String));
char* var;
int index = 0;
var = strsep(&selfCharArr, delimCharArr);
while(var != NULL) {
var = strsep(&selfCharArr, delimCharArr);
tokens[index] = var;
index++;
}
return (String*) tokens;
}
但是,在测试中我发现这只会返回一个 NULL 字符串,我不知道为什么。没有产生警告或错误,我已经查阅了手册页。