如何对保存在数组中的字符串进行strok,并将其保存到c中的三个不同数组中?

如何对保存在数组中的字符串进行strok,并将其保存到c中的三个不同数组中?,c,C,我在数组中存储了一个字符串 char a1[20],a2[20],a3[20]; Modem_Send("AT*PSHPLMN?\r\n",13); ModemWaitForAtResponse((char *)APN_Buffer,80,20); p = strtok (APN_Buffer,"'\":"); while (p!= NULL) { printf ("%s\r\n",p); p = strtok (NULL, "\"

我在数组中存储了一个字符串

    char a1[20],a2[20],a3[20];
    Modem_Send("AT*PSHPLMN?\r\n",13);
    ModemWaitForAtResponse((char *)APN_Buffer,80,20);
    p = strtok (APN_Buffer,"'\":");
    while (p!= NULL)
    {
    printf ("%s\r\n",p);
    p = strtok (NULL, "\":");
    }
AT响应将针对ex:

"234","567","String"
我想在三个不同的数组中保存
234567
String

我能够解析字符,但仍坚持将它们保存在不同的数组中

以上代码的输出是

234
,
567
,
String
我需要在a1[20]中保存234,在a2[20]中保存567,在a3[20]中保存字符串


提前谢谢。

这是CSV还是一堆字符?只要一个字符
sscanf(“[\'343\”、\'567\”、\'String\”]、“[\%20[^”]s\”、\%20[^”]s\”、\%20[^”]s\”、a1、a2、a3)
假设您的数组是21个字符。您尝试了什么?您在哪里卡住了?
char a1[20], a2[20], a3[20];
char* arr[3] = {a1, a2, a3};
int i=0;
Modem_Send("AT*PSHPLMN?\r\n",13);
ModemWaitForAtResponse((char *)APN_Buffer,80,20);
p = strtok (APN_Buffer,"'\":");
while (p!= NULL)
{
 strcpy(arr[i++], p);
 printf ("%s\r\n",p);
 p = strtok (NULL, "\":");
}