strsep
与多个分隔符一起使用时,我目前有一些奇怪的结果。我的分隔符包括 TAB 字符、空格字符以及>
and <
。
#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
不知何故,第一个字符被切断了。发生这种情况是否有原因?
谢谢你。