Linux基础day6,c补习,删除字符串中指定字符串,考虑到删除后可能会产生新的子字符串
2013-11-25 18:50
381 查看
老师布置了一道题,感觉比较可以。
例如母字符串为:abababababccccc,子字符串为abc。删除中间的abc后,会产生新的abc子字符串,我们应该再次遍历该母字符串,查找是否产生了新的子字符串。
具体程序如下(这里说明下,用自己的strcat函数,因为库函数的strcat有问题,不能用在本身的字符串身上)
例如母字符串为:abababababccccc,子字符串为abc。删除中间的abc后,会产生新的abc子字符串,我们应该再次遍历该母字符串,查找是否产生了新的子字符串。
具体程序如下(这里说明下,用自己的strcat函数,因为库函数的strcat有问题,不能用在本身的字符串身上)
//删除字符串中的子串 #include #include #include int delestr(char str[],char * cstr); char * mystrcat(char * str1,const char * str2); int main (int argc, char *argv[]) { char str[]="dfdsabcababababcccccccdfds"; char * cstr = "abc"; delestr(str,cstr); printf("%s\n",str); return 0; } int delestr(char str[],char * cstr) { char * p = str; bool flag = true; int len = strlen(cstr); while(flag) { flag=false; //准备结束这次循环,如果下面没有找到子字符串,这次while就完了。 while(*str) { if(*str == *cstr) { if(strncmp(str,cstr,len) == 0) { *str = 0; mystrcat(p,str+len); flag = true; //如果删除了,就可能产生新的子字符串,置位flag,再次循环查找 } } str++; } str = p; } return 0; } char * mystrcat(char *dest, const char *src) { char *p = dest; while(*dest) dest++; while(*dest++ = *src++); return p; }
相关文章推荐
- JAVA基础 - 删除字符串中指定字符串的方法
- Linux基础day4,shell编程,感觉比较经典的:删除字符串中重复字符
- Objective-C中在一个字符串删除指定字符串的方法(OC中NSString的常用API的基础应用1)
- shell删除当前目录及递归目录下文件指定字符串
- vi中如何在多行行首或行尾插入删除指定字符串
- linux删除指定的行
- Java基础知识强化44:StringBuffer类之把数组拼接成指定格式的字符串的案例
- 删除字符串中指定的一些字符
- c++实现删除字符串前后指定字符
- 字符串删除指定字符
- 删除字符串中的指定字符
- 小程序(二) 指定字符串删除
- reverse(string str,int n) 交换指定字符串中的子字符串
- 删除字符串最后一个指定的字符
- linux C 字符串操作:删除字符串中空格
- 删除字符串中所有指定的字符
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- C#自己编写的一个函数 可以删除字符串中指定开头和结尾中间的字符串
- 从字符串的指定位置开始,删除指定长度字符