背景:ping诊断功能的结果是直接将ping结果的数据显示出来,但是web显示%为乱码,我查了一下需要转义,% 单列出来就是取模运算符,%%只输出一个百分号。
写了个字符串替换函数
/* handle special character '%' */ if (strstr(buff, "%")) { replaceChar(buff, "%", "%%", sizeof(buff)); if (fprintf(fxp, buff) < 0) { break; } } static void replaceChar(char *str, char *oldStr, char *newStr, int len) { char buf[len]; int i = 0; memset(buf, 0, sizeof(buf)); if (NULL == str) { return; } while (i < strlen(str)) { if (!util_strncmp(str + i, oldStr, 1)) { strncat(buf, newStr, strlen(newStr)); } else { strncat(buf, str + i, 1); } i++; } UTIL_STRNCPY(str, buf, len); }
提交的时候被老大说不够好,有没有库函数代替一下
后来公司一个大佬看到我提交这个,过来跟我讲,用fputs试试,就不用转义了
以下是fputs用法:
默默将自己写的这段代码加上了#if 0 #endif。。。。。。