字符串替换函数定义方式比较
程序代码:
方式一: // 把字符串str中的子字符串substr1用子字符串substr2替换 char* SwapSubstr(char *dest, char *source, char*substr1, char*substr2) { char *pstr = source; char *pstr1 = dest; unsigned int i; for (i=0;i<strlen(source)-strlen(substr1)+1;i++) { if (0==strncmp(pstr,substr1,strlen(substr1))) { strcat(pstr1,substr2); pstr += strlen(substr1); pstr1 += strlen(substr2); } else *pstr1++ = *pstr++; } *pstr1 = 0; return dest; }上述函数要求替换产生的目的存储器事先传入
程序代码:
// 方式二: char* SwapSubstr(char *source, char*substr1, char*substr2) { static char dest[1024]; char *pstr = source; char *pstr1 = dest; unsigned int i; for (i=0;i<strlen(source)-strlen(substr1)+1;i++) { if (0==strncmp(pstr,substr1,strlen(substr1))) { strcat(pstr1,substr2); pstr += strlen(substr1); pstr1 += strlen(substr2); } else *pstr1++ = *pstr++; } *pstr1 = 0; return dest; }方式二则使用静态存储器的方式,不用预先制定目标存储器,但是这种方式的不利之处在于不可多线程并行处理