【发布时间】:2019-02-22 08:55:41
【问题描述】:
我有一个如下的字符数组:
char array[] = "AAAA... A1... 3. B1.";
如何在 Arduino 中通过字符串 "..." 拆分此数组?我试过了:
ptr = strtok(array, "...");
输出如下:
AAAA,
A1,
3,
B1
但我实际上希望输出是
AAAA,
A1,
3.B1.
如何得到这个输出?
编辑:
我的完整代码是这样的:
char array[] = "AAAA... A1... 3. B1.";
char *strings[10];
char *ptr = NULL;`enter code here`
void setup()
{
Serial.begin(9600);
byte index = 0;
ptr = strtok(array, "..."); // takes a list of delimiters
while(ptr != NULL)
{
strings[index] = ptr;
index++;
ptr = strtok(NULL, "..."); // takes a list of delimiters
}
for(int n = 0; n < index; n++)
{
Serial.println(strings[n]);
}
}
【问题讨论】:
-
欢迎来到 SO:您写道:“我已经尝试过 strtok() 函数,但是......”很好 :-) 现在请在此处发布该代码并解释出现了什么问题。然后我们可以帮助您更正代码。顺便说一句:
strtok可能是错误的函数,但是当您使用strtok发布代码时,我们将能够向您发送正确的方向。 -
@4386427 谢谢我是stackoverflow的新手。我进行了编辑
-
@StefanBecker 进行了编辑,请检查问题
-
您可以使用
strstr并自己迭代。strtok查找分隔符中的任何字符,因此"..."将得到与"."相同的结果。 -
现在您知道
strtok无法区分单个'.'和多个'...',您可以向我们展示您尝试使用strstr的版本。
标签: c++ arduino embedded c-strings