标签:
void replaceFirst(char *str1,char *str2,char *str3) { char str4[strlen(str1)+1]; char *p; strcpy(str4,str1); if((p=strstr(str1,str2))!=NULL)/*p指向str2在str1中第一次出现的位置*/ { while(str1!=p&&str1!=NULL)/*将str1指针移动到p的位置*/ { str1++; } str1[0]=‘\0‘;/*将str1指针指向的值变成/0,以此来截断str1,舍弃str2及以后的内容,只保留str2以前的内容*/ strcat(str1,str3);/*在str1后拼接上str3,组成新str1*/ strcat(str1,strstr(str4,str2)+strlen(str2));/*strstr(str4,str2)是指向str2及以后的内容(包括str2),strstr(str4,str2)+strlen(str2)就是将指针向前移动strlen(str2)位,跳过str2*/ } } /*将str1出现的所有的str2都替换为str3*/ void str_replace(char *str1,char *str2,char *str3) { //如果传入的参数 str2 和str3相同 直接退出 避免while死循环 if(!strcmp(str2,str3)){ return ; } while(strstr(str1,str2)!=NULL) { replaceFirst(str1,str2,str3); } }
标签:
原文地址:http://www.cnblogs.com/dpf-10/p/5952267.html