c语言之字符串解析(AT指令设置命令参数解析)



void at_cmd_pasre(char *cmd) {

	int32_t para_int_1 = 0;
	char para_str_2[32] = { 0 };
	char para_str_3[32] = { 0 };
	char* p = cmd;
	int ret = -1;
	p = strstr(cmd,"+TEST=");
	if (p != NULL) {
		p += strlen("+TEST=");
		sscanf(p, "%d", &para_int_1);
		printf("para_int_1=%d\r\n", para_int_1);
	}
	do {
		p = strstr(p, ",");
		if (p == NULL) {
			break;
		}
		p += 1;
	
		ret = sscanf(p, "\"%[^\"]\"", &para_str_2);
		if (ret != 1) {
			printf("param is ommit\r\n");
		}
		else
			printf("para_str_2=%s\r\n", para_str_2);

	
	} while (0);

	do {
		p = strstr(p, ",");
		if (p == NULL) {
			break;
		}
		p += 1;
		ret=sscanf(p, "\"%[^\"]\"", &para_str_3);
		if (ret != 1) {
			printf("param is ommit\r\n");
		}
		else
			printf("para_str_3=%s\r\n", para_str_3);

	} while (0);

}

使用:

		at_cmd_pasre("AT+TEST=1,\"12\",");
		at_cmd_pasre("AT+TEST=1,\"12\"");
posted @ 2025-08-22 10:02  我不是萧海哇~~~  阅读(9)  评论(0)    收藏  举报