实现字符串的查找和替换
来源:互联网 发布:影像测量仪软件 编辑:程序博客网 时间:2024/06/06 08:40
在字符串中查找目标字符串并将其替换为指定字符串,返回替换的次数。接口为
int find_str_replace(char *&str,const char *find_str,const char *replace_str)
将str中所有find_str替换为replace_str。要求不利用STL,c实现代码如下:
#include<stdio.h>#include<string.h>#include<stdlib.h>//查找str从fromwhere开始第一次出现sub_str的位置int find(const char *str,const char *sub_str,int fromwhere){int len=strlen(str);int len_f=strlen(sub_str);for(int i=fromwhere;i<len&&len-i>=len_f;i++){int k=i;int j=0;while(j<len_f){if(str[k]==sub_str[j]){k++;j++;}else break;}if(j==len_f){return i;}}return -1;}//替换fromwhere处的find_str为replace_strvoid replace(char *&str,const char *find_str,const char *replace_str,int fromwhere){int len=strlen(str);int len_f=strlen(find_str);int len_r=strlen(replace_str);char *p=(char*)malloc(len+len_r-len_f);memset(p,0,len+len_r-len_f);strncpy(p,str,fromwhere);strcat(p,replace_str);strcat(p,str+fromwhere+len_f);str=p;}//在str中将所有find_str替换为repalce_str;int find_str_replace(char *&str,const char *find_str,const char *replace_str){int num=0;int len=strlen(str);int len_r=strlen(replace_str);int k=0;while(k<len){int pos=find(str,find_str,k);if(pos==-1)break;else{replace(str,find_str,replace_str,pos);k=pos+len_r;num++;}}return num;}int main(){char *a="123456783450987634243453";char *b="345";char *c="ABCD";int num=find_str_replace(a,b,c);printf("%s\n",a);printf("%d",num);return 0;}若使用c++并利用STL,代码极其简单:
#include<iostream>#include<string>using namespace std;int find_str_replace(string &str,string find_str,string replace_str){int num=0;int len_f=find_str.length();int len_r=replace_str.length();int pos=str.find(find_str,0);while(pos!=string::npos){ str.replace(str.begin()+pos,str.begin()+pos+len_f,replace_str); pos=pos+len_r; pos=str.find(find_str,pos); num++;}return num;}int main(){string a="123456783450987634243453";string b="345";string c="ABCD";int num=find_str_replace(a,b,c);printf("%s\n",a.c_str());printf("%d",num);return 0;}
0 0
- 实现字符串的查找和替换
- js实现字符串的查找和替换
- C语言实现字符串的查找和替换
- 查找和替换字符串
- 字符串查找和替换
- 字符串 的查找 替换
- 字符串查找和替换算法
- 字符串查找和替换接口
- C++字符串查找和替换
- 使用MFC中自带的CFindReplaceDialog类实现字符串查找和替换
- 字符串的查找与替换
- vim 查找字符串和字符串替换
- 有关js 函数验证和字符串查找替换的方法
- UVA 10115 Automatic Editing (字符串的替换和查找)
- C++实现字符串的分割和替换
- oracle实现字符串截取,查找,替换
- 批处理查找和替换文件指定字符串
- 在LoadRunner中查找和替换字符串
- matlab中repmat函数的用法
- 开始学习Linux操作系统了
- 内部类
- 安卓程序基本结构分析
- 理解Android的Http协议
- 实现字符串的查找和替换
- hdu 1016 Prime Ring Problem (DFS)
- IOS7中ViewController切换动画
- XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在
- 接口
- POJ 1663(水题)
- Linux系统命令大全
- 1018. Public Bike Management (30)
- Object