本文共 1103 字,大约阅读时间需要 3 分钟。
//NO1 solution: strtok and strcatchar* strReplaceNo1(char* str, char* oldpart, char* newpart){ char temp[256],refer[256]; memset(temp, 0, sizeof(temp)); strcpy(refer, str); if(!memcmp(str, oldpart, strlen(oldpart))) strcat(temp, newpart); char* pch; pch = strtok (refer,oldpart); while (pch != NULL) { strcat(temp,pch); strcat(temp,newpart); pch = strtok (NULL, oldpart); } pch=str; if(!memcmp(str+strlen(refer)-strlen(oldpart), oldpart, strlen(oldpart))) temp[strlen(temp)-strlen(newpart)] = '/0'; strcpy(str, temp); return str;}
//NO2 solution: strstr and strcatchar* strReplaceNo2(char* str, const char* oldpart, const char* newpart){ char temp[256]; memset(temp, 0, 256); const int size = strlen(oldpart); const int sizeNew = strlen(newpart); int off = 0; char* pch = strstr(str, oldpart); int pos1=0, pos2=0; while(pch!=NULL) { pos2=pch-str; memmove(temp+off, str+pos1, pos2-pos1); strcat(temp, newpart); off+=pos2-pos1+sizeNew; pos1 = pos2+size; pch = strstr(pch+size, oldpart); } pch=str; strcat(temp,str+pos1); strcpy(str, temp); return str;}
就不附测试程序了,经过很仔细的测试,应该没什么问题。
转载地址:http://iwppi.baihongyu.com/