【发布时间】:2021-08-02 03:35:01
【问题描述】:
当使用带有多个分隔符的strsep 时,我目前遇到了一些奇怪的结果。我的分隔符包括 TAB 字符、空格字符以及> 和<。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char buffer[50];
char *curr_str = NULL;
const char delim[4] = "\t >";
//const char delim[4] = "\t ><"; // This does not work
snprintf(buffer, 50, "%s", "echo Hello");
char *str_ptr = buffer;
curr_str = strsep(&str_ptr, delim);
if (curr_str != NULL)
printf("%s\n", curr_str);
curr_str = strsep(&str_ptr, delim);
if (curr_str != NULL)
printf("%s\n", curr_str);
return (0);
}
这个输出是我所期望的。
echo
Hello
但是,一旦我为分隔符添加了“
cho
不知何故,第一个字符被截断了。发生这种情况是否有原因?
谢谢。
【问题讨论】:
标签: c tokenize c-strings strsep