gpt4 book ai didi

c - 使用 sscanf() 拆分 AT 命令字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:04 25 4
gpt4 key购买 nike

我在使用 C 中的 sscanf() 拆分字符串时遇到问题。

我有

char sms[]="AT+CMGR=7+CMGR: \"REC UNREAD\",\"+213552830677\",\"\",\"14/11/29,21:20:36+04\"123456Cn50555202555";

我想得到

char number[15] = "+213552830677";
char code[6] = "123456 ";
char cmd[2] = "Cn";
char arg[20] = "50555202555";

我使用此代码进行拆分并打印结果:

sscanf(sms,"AT+CMGR=8+CMGR: \"REC UNREAD\",\"+%12s\",\"\",\"14/11/29,21:20:36+04\"%6s%2s%s",tmp ,number ,code ,cmd ,arg);
printf("Temp: %s\r\nNumber: %s\r\nCode: %s\r\nCommand: %s\r\nArgument: %s\r\n",tmp ,number ,code ,cmd ,arg);

最佳答案

  • sscanf 格式中,您忘记了参数 tmp 的转换规范;因此输入被分配给了错误的对象。
  • char code[6]char cmd[2] 是空终止字符的空格,因此可能覆盖其他对象。

纠正这些错误后,e。 g.

    char code[6+1];
char cmd[2+1];
char tmp[1+1];
sscanf(sms, "AT+CMGR=%1s+CMGR: \"REC UNREAD\",\"+%12s"
"\",\"\",\"14/11/29,21:20:36+04\"%6s%2s%s",
tmp, number, code, cmd, arg);

有效。

关于c - 使用 sscanf() 拆分 AT 命令字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318262/

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