字符替换操作
背景: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替换fprintf试试,就不用转义了。
以下是fputs用法(man fputs):
默默将自己写的这段代码加上了#if 0 #endif。。。。。