replace函数c++(c++ char 字符替换)
本文目录
- c++ char 字符替换
- c++的字符数组替换,请高手指教~
- replace函数C++应该怎么用呢
- C++编程纠错:编写函数 void replace(char *src,char oldchar,
- C++,如果加入regex.h,使用正则式
- 我最近学习C++,有个替换函数,我看书都是ReplaceSel() ,怎么我的vC++6.0里是Replace(),
- replace是什么函数
- c++删除txt中空格 符号
- C++字符数组有几种方式改变其内容
- C++中replace函数使用,详细的!
c++ char 字符替换
#include 《iostream》#include 《fstream》#include 《conio.h》#include 《string.h》using namespace std;void Replace(char *str, char findChar, char replaceChar){ for (int i = 0; str != ’\0’; i++) { if (str == findChar) { str = replaceChar; } }}void main(){ char a = "a|b|c|d|"; Replace(a,’|’,’&’); cout《《a《《endl; cout 《《 endl 《《 "按任意键退出" 《《 endl; getch();}
c++的字符数组替换,请高手指教~
1.下面的代码是不调用任何库函数完成字符串的查找和替换的代码:#include 《iostream》using namespace std;// 求字符串长度函数int strlength(char *s){ int count = 0; while(*s++ != ’\0’) count ++; return count;}// 搜索字串出现的位置int search(char *s, char *subs, int *mark){ unsigned int i = 0, j = 0, f = 0, mlen = 0; for (i = 0; i 《= strlength(s) - strlength(subs); i++) { f = 1; for (j = 0; j 《 strlength(subs); j++) { if (*(s + i + j) != *(subs + j)) { f = 0; break; } } if (f) { *(mark+mlen) = i; mlen ++; i += strlength(subs) - 1; } } return mlen;}// 替换确定位置的字串void replaces(char *s, char *old, char *news, int position){ int lold = strlength(old); int lnew = strlength(news); int len = abs(lold - lnew); int old_start = position, old_end = lold + old_start; int i = 0; if (lold 》 lnew) { for (i = 0; i 《 lnew; i++) { *(s + i + old_start) = *(news + i); } for (i = lnew + old_start; i 《 (int)strlength(s); i++) { *(s + i) = *(s + len + i); } *(s + i) = ’\0’; } else { for (i = strlength(s); i 》= old_end; i--) { *(s + len + i) = *(s + i); } *(s + strlength(s) + len) = ’\0’; for (i = 0; i 《 lnew; i++) { *(s + i + old_start) = *(news + i); } }}void main(){ char str; char substr; char newstr; int *mark,mlen,i = 0,j = 0; cout 《《 "请输入主字符串:"《《 endl; cin.getline(str, 100, ’\n’); cout 《《 "请输入要替换的字符串:"《《 endl; cin.getline(substr, 100, ’\n’); cout 《《 "请输入要替换成的字符串:" 《《 endl; cin.getline(newstr, 100, ’\n’); mlen = strlength(str)/strlength(substr); mark = (int *)malloc(sizeof(int) * mlen); mlen = search(str,substr,mark); cout 《《 "子字符串在主字符串中出现的位置为:" 《《 endl; for (i = 0; i 《 mlen; i++) { cout 《《 *(mark + i) 《《 " "; } cout 《《 endl; for (i = 0; i 《 mlen; i++) { replaces(str,substr,newstr,*(mark +i)); for (j = i + 1; j 《 mlen; j++) { *(mark + j) = *(mark + j) + strlength(newstr) - strlength(substr); } } cout 《《 "替换后的字符串为:\n" 《《 str 《《 endl;}2.下面是调用库函数完成字符串查找替换的代码:#include 《iostream》#include 《string》using namespace std;void search(string str, string sub){ int index = str.find(sub); cout 《《 "子字符串在主字符串中出现的位置为:" 《《 endl; while(index 》= 0 && index 《 str.length()) { cout 《《 index 《《 " "; index = str.find(sub, index + sub.length()); } cout 《《 endl;}void replaces(string &str, string sub, string news){ int index = str.find(sub); while(index 》= 0 && index 《 str.length()) { str = str.replace(index, sub.length(), news); index = str.find(sub, index + news.length()); }}void main(){ string str = "asdfasdfasdf"; string sub = "df"; string news = "123"; search(str, sub); replaces(str, sub, news); cout 《《 "替换后的字符串为:" 《《 endl; cout 《《 str 《《 endl;}两个程序对照着看一下,希望对你以后的学习有所帮助
replace函数C++应该怎么用呢
basic_string::max_size 返回string 能放的最大元素个数。(不同于capacity) size _ type max _ size( ) const; basic_string 《char》::size_type cap, max; cap = s.capacity ( ); max = s.max_size ( ); // max=4294967294. basic_string::rfind 寻找给定的string。返回找到的第一个string 下标值;如果没找到则返回npos。 与find 不同的是:rfind 默认从npos 开始找。其他相同。 basic_string::replace 将原string 中的元素或子串替换。返回替换后的string。 (1)用string 或C-string 代替操作string 中从 _Pos1 开始的 _Num1 个字符 basic _ string& replace( size _ type _Pos1 ,size _ type _Num1 , const value _ type* _Ptr ); basic _ string& replace(size _ type _Pos1 ,size _ type _Num1 ,const basic _ string _Str );Code(2)用string 中从 _Pos2 开始的 _Num2 个字符,代替操作string 中从 _Pos1 开始的 _Num1 个字符 用C-string 中的 _Num2 个字符,代替操作string 中从 _Pos1 开始的 _Num1 个字符 basic _ string& replace( size _ type _Pos1 , size _ type _Num1 , const basic _ string& _Str , size _ type _Pos2 , size _ type ); basic _ string& replace( size _ type _Pos1 , size _ type _Num1 , const value _ type* _Ptr , size _ type _Num2 );Code(3)用 _Count 个character _Ch , 代替操作string 中从 _Pos1 开始的 _Num1 个字符 basic _ string& replace( size _ type _Pos1 , size _ type _Num1 , size _ type _Count , value _ type _Ch );string result; string s ( "AAAAAAAA" ); char ch = ’C’; result = s.replace ( 1 , 3 , 4 , ch ); // s= "ACCCCAAAA"(4)用string 或C-string ,代替操作string 中从 First0 到 Last0 的字符 basic _ string&replace(iterator First0 ,iterator Last0 , const basic _ string& _Str ); basic _ string&replace(iterator First0 ,iterator _Last0 , const value _ type* _Ptr );Code(5)用string 中从 _Pos2 开始的 _Num2 个字符,代替操作string 中从 First0 到 Last0 的字符 用C-string 中的 _Num2 个字符,代替操作string 中从 First0 到 Last0 的字符 basic _ string& replace( iterator _First0 , iterator _Last0 , const value _ type* _Ptr , size _ type _Num2 ); template《class InputIterator》 basic _ string& replace( iterator _First0 , iterator _Last0 , InputIterator _First , InputIterator _Last ); IterF3 = s.begin ( ) + 1; IterL3 = s.begin ( ) + 3; IterF4 = s.begin ( ); IterL4 = s.begin ( ) + 2; a = s.replace ( IterF3 , IterL3 , IterF4 , IterL4 ); b = s.replace ( IterF1 , IterL1 , cs5p , 4 ); (6)用 _Count 个character _Ch , 代替操作string 中从 First0 到 Last0 的字符 basic _ string& replace( iterator _First0 , iterator _Last0 , size _ type _Count , value _ type _Ch ); a = s.replace ( IterF2 , IterL2 , 4 , ch ); basic_string::swap 交换两个string。 void swap( basic _ string& _Str ); s1.swap ( s2 );basic_string::substr 返回从 _Off ( 下标)开始的 _Count 个字符组成的string basic _ string substr( size _ type _Off = 0, size _ type _Count = npos ) const;string s("I love you!") ,sub; sub=s.substr( ); // sub= "I love you!" sub=s.substr(1); // sub= " love you!" sub=s.substr(3,4); // sub= "ove"
C++编程纠错:编写函数 void replace(char *src,char oldchar,
首先,错误原因是replace函数在调用前没有被声明,修改方法有两种。
方法一:在主函数前声明,即添加下图第3行代码
方法二:将原有的replace函数全部移到主函数前
修改后程序运行结果正确,如图
C++,如果加入regex.h,使用正则式
#include "deelx.h"// 表达式对象CRegexpT 《char》 re("\\d*(?=\\.)\\.\\d*", MULTILINE);// 替换char * newstring = re.Replace("1.12\n1", "");// 其他操作//.....// 释放字符串re.ReleaseString(newstring);
我最近学习C++,有个替换函数,我看书都是ReplaceSel() ,怎么我的vC++6.0里是Replace(),
VC里面你要看什么类,很多类都有Replace函数,比如CString,CImageList等而CEdit里面有ReplaceSel。函数的功能其实已经表示在它的名字上了
replace是什么函数
顾名思义是 替代函数。c++ 中 有此函数,std::string::replace:例如:string& replace (size_t pos, size_t len, const char* s);string& replace (size_t pos, size_t len, size_t n, char c); string& replace (iterator i1, iterator i2,InputIterator first, InputIterator last);详细,可以看c++帮助文件。
c++删除txt中空格 符号
给你个提取中文字符的函数,文件读写就自己写吧。运行环境VS2008.GB2312编码的特性:将ASCII码表中161-255(-95~-1)之间的数值空间作为汉字的标识码。处理字符时,当连续处理到两个大于160(或-95~-1)的字节时,就认为这两个字节存放了一个汉字字符。#include 《atlstr.h》#include 《iostream》using namespace std;CString FilterString(CString strIn){ strIn.Replace(" ", ""); strIn.Trim(); int iLen = strIn.GetLength(); if (!(iLen 》 0)) { return ""; } char * pstrIn = strIn.GetBuffer(); CString strOut = ""; int iFlag = 0; for(int i =0 ;i 《 iLen ;i++) { if(pstrIn 》= -95)) { if(iFlag == 1) { strOut.AppendChar(pstrIn); strOut.AppendChar(pstrIn); iFlag = 0; } else { iFlag=1; } } } strIn.ReleaseBuffer(); return strOut;}int main(){ CString strMsg = " hello孟姜女123, 。。 ..?;’\r\n哭长城owjyrend"; cout《《"o源字符串: "《《strMsg《《endl; cout《《"o转换符串: "《《FilterString(strMsg)《《endl; return 0;}这里中文标点符号也算是中文字符。
C++字符数组有几种方式改变其内容
那太多了,仅提供的能改变内容的函数或操作符,就我知道的就有这么多……a) =,assign() //赋以新值b) swap() //交换两个字符串的内容c) +=,append(),push_back() //在尾部添加字符d) insert() //插入字符e) erase() //删除字符f) clear() //删除全部字符g) replace() //替换字符h) + //串联字符串
C++中replace函数使用,详细的!
一共有十个重载版本:其中的一个:basic_string &replace( size_type index, size_type num, const basic_string &str );用str中的num个字符替换本字符串中的字符,从index开始给个邮箱我给你发C/C++参考手册
更多文章:
matlab两个数组合并(Matlab两个一维数组合并为一个数组)
2024年7月20日 23:05
excel怎么查找内容(如何利用excel表格快速查找到指定的内容)
2024年7月4日 21:58
split函数分割多个字符(str.split() re.split() --对任意多的分隔符拆分字符串)
2024年7月17日 06:25
win10删除的文件怎么恢复(win10删除的文件怎么找回)
2024年6月30日 02:14
打开matlab一闪就没了(每次打开matlab时都会先弹出一个一闪即逝的dos窗口,正常吗)
2024年9月29日 12:45
塞克斯顿对快船(快船双核背靠背爆发!60+10宣战湖人,输三巨头仍是詹皇强敌)
2024年7月20日 06:02
timeout系统什么意思啊(软件显示timeout怎么回事)
2024年8月30日 08:45
查看linux文件内容的命令(Linux系统中查看所有文件的命令是什么)
2024年6月16日 18:40
重定向怎么传参数(django HttpResponseRedirect怎么传递参数)
2024年7月23日 13:24
Load怎么读?怎样进入Load Optimized Defaults为什么选项中只有load defaults
2024年7月3日 11:05
excel表格制作表格的流程(excel表格制作有什么步骤)
2024年7月10日 08:35
button按钮点击事件(button按钮的点击事件怎么写)
2024年8月11日 10:27
sybase是应用软件吗(计算机软件分为系统软件和应用软件.列举出5种系统软件和15种应用软件)
2024年6月20日 06:33
20ajax(ajax 如何限制输入框输入数字范围在20到30之间)
2024年10月5日 07:45