字符串中的子串替换
来源:互联网 发布:dnf全屏源码 编辑:程序博客网 时间:2024/05/23 17:33
用字符串s代替主串中指定的子字符串,两者长度不一定相等
#include <iostream>#include <string>using namespace std;void StrReplace(char* strSrc, const char* strFind, const char*strReplace);//原串、原串中待替换的串,替换串 (替换串和待替换的串长度不一定相等)int main(){ string strFind,strReplace; cout << "Input the start string :" << endl; char *s = new char[100]; /*gets(s)(可直接调用,不用另外赋值给字符指针)是直接读取字符串到buffer中,不检查是否越界,gets_s有对长度的控制,超过会有提醒,fgets()从文件中读取*/ gets_s(s,100); cout << "Input the sub_string to be replaced :" << endl; getline(cin,strFind); const char *sub_str = strFind.c_str(); cout << "Input the replacement:" << endl; getline(cin,strReplace); const char *replace = strReplace.c_str(); StrReplace(s,sub_str,replace); cout << "The end string after the replacement:" << endl; cout << s << endl; return 0;}void StrReplace(char* strSrc, const char* strFind, const char*strReplace){ int n = strlen(strFind); /*因为strFind 和strReplace长度不一定相等,所以不能直接在strSrc中处理,需要额外创建一个空间,存储替换后的字符串*/ char *temp = new char[100]; char *q = temp; char *s = strSrc; const char *p = strReplace; while(*s != '\0') { if(strncmp(s,strFind,n) == 0) { while (*p != '\0') { *q = *p; q++; p++; } p = strReplace; s += n; } else { *q = *s; s++; q++; } } *q = '\0'; strcpy(strSrc,temp);}
0 0
- 字符串中的子串替换
- 替换字符串中的子串
- 替换字符串中的子字符串
- 替换字符串中的指定子串
- c语言替换字符串中的子串
- 字符串子串替换
- 001_016 Python 替换字符串中的子串
- 001_017 Python 替换字符串中的子串string.template
- Python3.4-文本-替换字符串中的子串
- python替换字符串中的子串 %(xxxx)s
- Python3.4-文本-替换字符串中的子串
- Java替换特定字符串中的特定子串
- python替换字符串中的子串 %(xxxx)s
- 替换子字符串(将字符串中的某个子字符串替换为给定的字符串)
- C语言中替换字符串中的子字符串(WIN)
- C语言——例程:字符串中的子字符串替换
- 替换字符串中所有子串
- 【字符串】面试题之替换子串
- 简说mysql分表分区
- QT中QWidget、QDialog及QMainWindow的区别
- mac自动补全和高亮
- 关于读取CocoStudio的ui文件可能遇到的问题
- 使用myeclipse启动tomcat时出现这种错误“Could not publish to the server. java.lang.NullPointerException”
- 字符串中的子串替换
- 深入理解Java:SimpleDateFormat安全的时间格式化
- android 的权限小记
- Infinity和NaN
- mysql注入-orderby之后limit位置
- 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)
- 安装TexLive,支持中文
- android获取屏幕尺寸和密度
- HDU 4135 Co-prime (容斥原理)