gpt4 book ai didi

C 多个Strtok确定分隔符

转载 作者:行者123 更新时间:2023-11-30 18:59:32 25 4
gpt4 key购买 nike

我正在编写一个 C 程序,用户可以输入一串 1-3 位数字,后跟反斜杠,然后再输入 1-3 位数字,或者他们可以输入 1-3 位数字,后跟逗号,然后再输入 1 -3 位数字,并且迭代次数没有限制。

我需要确定输入分隔符是反斜杠还是逗号(以确定如何处理数字)并将数字放入数组中。

我想到的方法是使用 strtok,如下所示。该字符串作为 char *token 输入。

op_tok1 = strtok(token, "\\");
if(op_tok1 != NULL)
{
/* Process numbers */
return;
}

op_tok2 = strtok(token, ",");
if(op_tok2 != NULL)
{
/* Process other numbers */
return;
}

这适用于任何用反斜杠分隔的内容,但不适用于逗号。我相信这是因为 strtok 混淆了 token 变量。这是真的?有更好的方法来解决这个问题吗?谢谢!

最佳答案

我当然会考虑更好的方法。如果您可以很好地依赖输入的格式(即,实际上是三位数字后跟允许的分隔符之一),您可以执行以下操作:

char *pos = 0;

while (2 == sscanf(input+pos, "%d%c", &number, &delimiter)) {
if ('\\' == delimiter)
process_backslash(number);
else if (',' == delimiter)
process_comma(number);
else
error_invalid_delimiter(delimiter);
pos += 4;
}

关于C 多个Strtok确定分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com