/* 在這里就打印解析的內容 */ void Handle(char *str, int len) { char *p = (char *)malloc(len + 1); memcpy(p, str, len); p[len] = 0; printf("%s\r\n", p); free(p); } /* str:需要解析的字符串 slipt;分割字符串 cb:回調函數指針,當找到內容后,去想該函數 舉例子:AtAnalysis("AT\r\n\r\nOK\r\n", "\r\n", Handle); */ void AtAnalysis(char *str, char *slipt, void (*cb)(char *, int)) { char *p = NULL; int len = strlen(slipt); p = strstr(str, slipt); while (p != NULL) { cb(str, p - str); str = p + len; p = strstr(str, slipt); } cb(str, strlen(str)); }