我需要逐行拆分.我以前用以下方式做的事情:
int doSegment(char *sentence, int segNum)
{
assert(pSegmenter != NULL);
Logger &log = Logger::getLogger();
char delims[] = "\n";
char *line = NULL;
if (sentence != NULL)
{
line = strtok(sentence, delims);
while(line != NULL)
{
cout << line << endl;
line = strtok(NULL, delims);
}
}
else
{
log.error("....");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我输入"我们是一个.\n \n我们是." 并调用doSegment方法.但是当我调试时,我发现句子参数是"我们是一个.\\nyes we are",并且拆分失败了.有人能告诉我为什么会这样,我该怎么办.有没有其他我可以用来在C++中拆分字符串.谢谢 !
我正在gdb用来调试C++程序.在线
assert(prevId == GetTagIdFromState(maxState));
Run Code Online (Sandbox Code Playgroud)
prevId值是0;GetTagIdFromState(maxState) returns 50;调试时,我收到以下错误.
Assertion `prevId == GetTagIdFromState(maxState)' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff6ecbba5 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
in ../nptl/sysdeps/unix/sysv/linux/raise.c
Run Code Online (Sandbox Code Playgroud)