c - 如何正确使用 strsep() 解析数组?
问题描述
我正在尝试实现一个函数,该函数接受一个字符串来解析和分隔字符串作为输入,然后返回一个包含这些解析元素的 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 字符串,我不知道为什么。没有产生警告或错误,我已经查阅了手册页。
解决方案
推荐阅读
- excel - 如何根据收到的时间和主题行在新邮件中保存 Excel 附件?
- python - 如何为作为 Kubernetes 容器运行的 Flask HTTP 服务器实现 HTTPS 支持
- node.js - 在库中提供可扩展的 Typescript 接口
- python - 如何在烧瓶中调试重定向循环
- javascript - 如何等到mysql查询完成后再继续运行脚本?
- azure-devops - 如何查找或添加 Azure 管道应用程序发布的输出文件夹以将这些文件上传到 FTP
- java - 如何使用 Java 8 流 API 对列表进行排序和排序
- python - 遍历一列
- xamarin - Navigation.PushAsync on Android 对按钮事件的影响
- java - 我如何让 onClickListener 提取一个 url 或使用 android 浏览器的 web 视图中的 if else 语句执行谷歌搜索