关闭

c++ replace() 函数

126人阅读 评论(0) 收藏 举报
分类:

c++ replace() 函数

针对c++中常用replace函数用法给出样例程序

/*用法一:
 *用str替换指定字符串从起始位置pos开始长度为len的字符
 *string& replace (size_t pos, size_t len, const string& str);
 */

运行结果:

this is@ a test string!

/*用法二:
 *用str替换 迭代器起始位置 和 结束位置 的字符
 *string& replace (const_iterator i1, const_iterator i2, const string& str);
 */
int main()
{
	string line = "this@ is@ a test string!";
	line = line.replace(line.begin(), line.begin()+6, "");	//用str替换从begin位置开始的6个字符
	cout << line << endl;	
	return 0;
}

is@ a test string!

/*用法三:
 *用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串
 *string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);
 */
int main()
{
	string line = "this@ is@ a test string!";
	string substr = "12345";
	line = line.replace(0, 5, substr, substr.find("1"), 3);	//用substr的指定子串(从1位置数共3个字符)替换从0到5位置上的line
	cout << line << endl;	
	return 0;
}


int main()
{
	string line = "this@ is@ a test string!";
	line = line.replace(line.find("@"), 1, "");	//从第一个@位置替换第一个@为空
	cout << line << endl;	
	return 0;
}

123 is@ a test string!

/*用法四:string转char*时编译器可能会报出警告,不建议这样做
 *用str替换从指定位置0开始长度为5的字符串
 *string& replace(size_t pos, size_t len, const char* s);
 */
int main()
{
	string line = "this@ is@ a test string!";
	char* str = "12345";
	line = line.replace(0, 5, str);	//用str替换从指定位置0开始长度为5的字符串
	cout << line << endl;	
	return 0;
}

12345 is@ a test string!

/*用法五:string转char*时编译器可能会报出警告,不建议这样做
 *用str替换从指定迭代器位置的字符串
 *string& replace (const_iterator i1, const_iterator i2, const char* s);
 */
int main()
{
	string line = "this@ is@ a test string!";
	char* str = "12345";
	line = line.replace(line.begin(), line.begin()+9, str);	//用str替换从指定迭代器位置的字符串
	cout << line << endl;	
	return 0;
}

12345 a test string!

/*用法六:string转char*时编译器可能会报出警告,不建议这样做
 *用s的前n个字符替换从开始位置pos长度为len的字符串
 *string& replace(size_t pos, size_t len, const char* s, size_t n);
 */
int main()
{
	string line = "this@ is@ a test string!";
	char* str = "12345";
	line = line.replace(0, 9, str, 4);	//用str的前4个字符替换从0位置开始长度为9的字符串
	cout << line << endl;	
	return 0;
}

1234 a test string!

/*用法七:string转char*时编译器可能会报出警告,不建议这样做
 *用s的前n个字符替换指定迭代器位置(从i1到i2)的字符串
 *string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);
 */
int main()
{
	string line = "this@ is@ a test string!";
	char* str = "12345";
	line = line.replace(line.begin(), line.begin()+9, str, 4);	//用str的前4个字符替换指定迭代器位置的字符串
	cout << line << endl;	
	return 0;
}

1234 a test string!

/*用法八: 
02. *用重复n次的c字符替换从指定位置pos长度为len的内容 
03. *string& replace (size_t pos, size_t len, size_t n, char c); 
04. */  
05.int main()  
06.{  
07.    string line = "this@ is@ a test string!";  
08.    char c = '1';  
09.    line = line.replace(0, 9, 3, c);    //用重复3次的c字符替换从指定位置0长度为9的内容  
10.    cout << line << endl;     
11.    return 0;  
12.}  

111 a test string!

/*用法九:
 *用重复n次的c字符替换从指定迭代器位置(从i1开始到结束)的内容
 *string& replace (const_iterator i1, const_iterator i2, size_t n, char c);
 */
int main()
{
	string line = "this@ is@ a test string!";
	char c = '1';
	line = line.replace(line.begin(), line.begin()+9, 3, c);	//用重复3次的c字符替换从指定迭代器位置的内容
	cout << line << endl;	
	return 0;
}

111 a test string!







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11009次
    • 积分:873
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:7篇
    • 译文:0篇
    • 评论:3条
    最新评论