/* 在这里就打印解析的内容 */ 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)); }