C语言实现一个长字符串中去除多次出现短字符串的功能
来源:互联网 发布:ibatis sql注入 编辑:程序博客网 时间:2024/05/10 18:26
/*获取母字符串长度(strLen)、子字符串长度(subStrLen),若strLen >=subStrLen,遍历母字符串各个元素 *遍历母串各个字符,从i:0-strLen,str[i];遍历子串各个字符,从j:0-subStrLen,subStr[j],比较str[i] 是否等于subStr[j], *且str[i+1] == subStr[j],。。。。。。 ,且str[i+subStrLen-1] == subStr[j+subStrLen-1]...若都相等,则重置j从下标从零开始。 *若str[i] != subStr[j],将str[i]赋值给strTmp.*/
/*函数功能:将一个母字符串(str)中去除不需要的子字符串(substr) * create by hardysong * date : 20170725char * modifyStr(char *str, char *subStr){int i,j,k,strLen ,subStrLen;strLen = strlen(str);subStrLen = strlen(subStr);char *strTmp = (char *)malloc(sizeof(char)*strLen);//strcpy(tmpstr,str);if(0 == subStrLen){//母、子字符串为空的判断printf("子字符串为空。");return str;}else if(strLen >=subStrLen ){//strLen大于等于subStrLen的情况i=0;j=0;k = 0;while(str[i] != '\n' && str[i] != '\0' ){if(str[i] != subStr[j]){//母串中的字符和子串中字符不相等时//母串中的有效的字符赋值给strTmp变量。strTmp[k++] = str[i];}else{while(subStr[j] != '\0' ){//j的值小于子串的下标if(str[i] != subStr[j]){strTmp[k++] = str[i];}else{i++;j++;continue;}}//重置j的值if(j == subStrLen){j = 0;i --;//避免多加一次的情况}}i++;}}else{//子字符串长度必须小于母字符串。printf("子字符串长度必须小于母字符串。");return str;}//最后一个字符赋值为'\0'strTmp[k++] ='\0';return strTmp;}
int main(int argc, char* argv[]){ int ret = 0;int i =0;char *str = "aastrbbstrccstrdd";//正确结果:aabbccddint strLen = strlen(str); char substr[20] = "str";char *strTmp = (char *)malloc(sizeof(char)*strLen); strTmp = modifyStr(str,substr); printf("变换后的字符串strTmp=%s\n",strTmp);return 0;}
阅读全文
0 0
- C语言实现一个长字符串中去除多次出现短字符串的功能
- C语言实现去除字符串中空格
- C语言实现去除字符串中空格
- C语言实现去除字符串中空格
- 去除字符串中多余的空格 C语言实现
- 【c语言】模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL
- 利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
- mysql自定义函数实现统计一个字符串在另一个长字符串中出现的次数
- 求一个字符串中连续出现的次数最多的子串[C语言实现]
- c语言实现找到字符串中出现最多的字符
- c语言中怎么实现字符串转化数字的功能
- C语言实现一个去除字符串中的首尾空格,字母中间有多个空格的去除多余的,剩余一个空格
- 去除字符串末尾的空格的C语言实现
- 去除字符串中的空格 C语言实现
- 一个查找在字符串中出现多次某个字符串的方法
- 【C语言】模拟实现strchr函数.即在一个字符串中查找一个字符第一次出现的位置并返回
- js中实现一次性替换掉字符串中多次出现的某一子字符串
- 用c语言实现在母字符串中查找子字符串出现的次数
- react项目学习笔记二(react-router)
- CodeForces
- BI服务器配置与客户端情况
- js 获取浏览器版本信息
- 使用spring session redis做session共享
- C语言实现一个长字符串中去除多次出现短字符串的功能
- 面向对象继承
- OC语言学习22-Block基本语法
- leetcode 337. House Robber III
- 【spring ----- 注解篇】 常用注解
- 百度云bae发布代码失败怎么处理
- Dictionary<string, List<string>> 的使用
- select、 poll 、epoll 区别与联系
- 关于winodows下编程c++遇到的引用文件路径问题