【发布时间】:2020-04-16 09:05:23
【问题描述】:
我有这个字符串,我想用strtok() 分隔:
"+ 2 3\\nln 9\\ln 10"
然后我将 \\n 作为分隔符传递
token = strtok(argv, "\\n");
while (token)
{
args[index] = token;
token = strtok(NULL, "\\n");
index++;
}
我的args 表中的第一个元素是+ 2 3,这很好,但是,第二个元素是l。
有谁明白为什么?如果是这样,我如何在我的args 表中获取我的ln 9?
【问题讨论】:
-
最后一个参数是可以作为分隔符的字符列表。所以
"\\n"表示你想在任何时候找到反斜杠或 n 时拆分它 -
对不起,我编辑了字符串,结果与预期不同。我想在出现 \\n 的任何时候进行拆分,但它实际上执行了您刚才所说的操作
-
您在找到反斜杠
'\'或找到'n'字符的每个点分隔字符串。如果您希望它以换行符分隔您的字符串,请使用"\n"作为字符串文字传递给strtok(3)。