如何对保存在数组中的字符串进行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, "\":");
}