织梦CMS - 轻松建站从此开始!

罗索

c++ string 的函数replace()用法

落鹤生 发布于 2010-08-13 22:46 点击:次 
标准c++ STL中std::string 的replace()函数用法
TAG:

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 );

string a,b;
string s ( "AAAAAAAA" );
string s1p ( "BBB" );

const char* cs1p = "CCC"

a = s.replace ( 1 , 3 , s1p ); // s= ” ABBBAAAA ”

b = s.replace ( 5 , 3 , cs1p ); // s= ” ABBBACCC ”

(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 );

string a, b;
string s ( "AAAAAAAA" );
string s2p ( "BBB" );
const char* cs2p = "CCC";

a = s.replace ( 1 , 3 , s2p , 1 , 2 ); // s= ” ABBAAAA ”

b = s.replace ( 4 , 3 , cs2p , 1 ); // s= ” ABBAC ”

(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 );

string s ( "AAAAAAAA" ); string s4p ( "BBB" );
const char* cs4p = "CCC";
basic_string<char>::iterator IterF0, IterL0;
IterF0 = s.begin ( ); IterL0 = s.begin ( ) + 3;
string a, b;

a = s.replace ( IterF0 , IterL0 , s4p ); // s= ” BBBAAAAA ”

b = s.replace ( IterF0 , IterL0 , cs4p ); // s= ” CCCAAAAA ”

(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

本博客大部分为转载,本人不保证正确,请甄别
 
(8586)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201008/9971.html]
本文出处:博客园 作者:8586
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容