C++string.docx
《C++string.docx》由会员分享,可在线阅读,更多相关《C++string.docx(16页珍藏版)》请在冰豆网上搜索。
C++string
C++中string相关函数
C++Strings(字符串)
--------------------------------------------------------------------------------
构造函数(Constructors)
语法:
string();
string(size_typelength,charch);
string(constchar*str);
string(constchar*str,size_typelength);
string(string&str,size_typeindex,size_typelength);
string(input_iteratorstart,input_iteratorend);
字符串的构造函数创建一个新字符串,包括:
以length为长度的ch的拷贝(即length个ch)
以str为初值(长度任意),
以index为索引开始的子串,长度为length,或者
以从start到end的元素为初值.
例如,
stringstr1(5,'c');
stringstr2("Nowisthetime...");
stringstr3(str2,11,4);
cout< cout< cout<显示
ccccc
Nowisthetime...
time
--------------------------------------------------------------------------------
操作符(Operators)
语法:
==
>
<
>=
<=
!
=
+
+=
[]
你可以用==,>,<,>=,<=,and!
=比较字符串.可以用+或者+=操作符连接两个字符串,并且可以用[]获取特定的字符.
相关主题:
at(),compare().
--------------------------------------------------------------------------------
添加文本(append)
语法:
basic_string&append(constbasic_string&str);
basic_string&append(constchar*str);
basic_string&append(constbasic_string&str,size_typeindex,size_typelen);
basic_string&append(constchar*str,size_typenum);
basic_string&append(size_typenum,charch);
basic_string&append(input_iteratorstart,input_iteratorend);
append()函数可以完成以下工作:
在字符串的末尾添加str,
在字符串的末尾添加str的子串,子串以index索引开始,长度为len
在字符串的末尾添加str中的num个字符,
在字符串的末尾添加num个字符ch,
在字符串的末尾添加以迭代器start和end表示的字符序列.
例如以下代码:
stringstr="HelloWorld";
str.append(10,'!
');
cout<显示
HelloWorld!
!
!
!
!
!
!
!
!
!
相关主题:
+操作符
--------------------------------------------------------------------------------
赋值(assign)
语法:
basic_string&assign(constbasic_string&str);
basic_string&assign(constchar*str);
basic_string&assign(constchar*str,size_typenum);
basic_string&assign(constbasic_string&str,size_typeindex,size_typelen);
basic_string&assign(size_typenum,charch);
函数以下列方式赋值:
用str为字符串赋值,
用str的开始num个字符为字符串赋值,
用str的子串为字符串赋值,子串以index索引开始,长度为len
用num个字符ch为字符串赋值.
例如以下代码:
stringstr1,str2="WarandPeace";
str1.assign(str2,4,3);
cout<显示
and
--------------------------------------------------------------------------------
at
语法:
referenceat(size_typeindex);
at()函数返回一个引用,指向在index位置的字符.如果index不在字符串范围内,at()将报告"outofrange"错误,并抛出out_of_range异常。
比如下列代码:
stringtext="ABCDEF";
charch=text.at
(2);
显示字符'C'.
相关主题:
[]操作符
--------------------------------------------------------------------------------
begin
语法:
iteratorbegin();
begin()函数返回一个迭代器,指向字符串的第一个元素.
相关主题:
end()
--------------------------------------------------------------------------------
c_str
语法:
constchar*c_str();
c_str()函数返回一个指向正规C字符串的指针,内容与本字符串相同.
相关主题:
[]操作符
--------------------------------------------------------------------------------
容量(capacity)
语法:
size_typecapacity();
capacity()函数返回在重新申请更多的空间前字符串可以容纳的字符数.这个数字至少与size()一样大.
相关主题:
max_size(),reserve(),resize(),size(),
--------------------------------------------------------------------------------
比较(compare)
语法:
intcompare(constbasic_string&str);
intcompare(constchar*str);
intcompare(size_typeindex,size_typelength,constbasic_string&str);
intcompare(size_typeindex,size_typelength,constbasic_string&str,size_typeindex2,
size_typelength2);
intcompare(size_typeindex,size_typelength,constchar*str,size_typelength2);
compare()函数以多种方式比较本字符串和str,返回:
返回值情况
小于零this零this==str
大于零this>str
不同的函数:
比较自己和str,
比较自己的子串和str,子串以index索引开始,长度为length
比较自己的子串和str的子串,其中index2和length2引用str,index和length引用自己
比较自己的子串和str的子串,其中str的子串以索引0开始,长度为length2,自己的子串以index开始,长度为length
相关主题:
操作符
--------------------------------------------------------------------------------
拷贝(copy)
语法:
size_typecopy(char*str,size_typenum,size_typeindex);
copy()函数拷贝自己的num个字符到str中(从索引index开始)。
返回值是拷贝的字符数
--------------------------------------------------------------------------------
data
语法:
constchar*data();
data()函数返回指向自己的第一个字符的指针.
相关主题:
c_str()
--------------------------------------------------------------------------------
empty
语法:
boolempty();
如果字符串为空则empty()返回真(true),否则返回假(false).
--------------------------------------------------------------------------------
end
语法:
iteratorend();
end()函数返回一个迭代器,指向字符串的末尾(最后一个字符的下一个位置).
相关主题:
begin()
--------------------------------------------------------------------------------
删除(erase)
语法:
iteratorerase(iteratorpos);
iteratorerase(iteratorstart,iteratorend);
basic_string&erase(size_typeindex=0,size_typenum=npos);
erase()函数可以:
删除pos指向的字符,返回指向下一个字符的迭代器,
删除从start到end的所有字符,返回一个迭代器,指向被删除的最后一个字符的下一个位置
删除从index索引开始的num个字符,返回*this.
参数index和num有默认值,这意味着erase()可以这样调用:
只带有index以删除index后的所有字符,或者不带有任何参数以删除所有字符.例如:
strings("So,youlikedonuts,eh?
Well,haveallthedonutsintheworld!
");
cout<<"Theoriginalstringis'"<
s.erase(50,14);
cout<<"Nowthestringis'"<
s.erase(24);
cout<<"Nowthestringis'"<
s.erase();
cout<<"Nowthestringis'"<
将显示
Theoriginalstringis'So,youlikedonuts,eh?
Well,haveallthedonutsintheworld!
'
Nowthestringis'So,youlikedonuts,eh?
Well,haveallthedonuts'
Nowthestringis'So,youlikedonuts,eh?
'
Nowthestringis''
--------------------------------------------------------------------------------
查找(find)
语法:
size_typefind(constbasic_string&str,size_typeindex);
size_typefind(constchar*str,size_typeindex);
size_typefind(constchar*str,size_typeindex,size_typelength);
size_typefind(charch,size_typeindex);
find()函数:
返回str在字符串中第一次出现的位置(从index开始查找)。
如果没找到则返回string:
:
npos,
返回str在字符串中第一次出现的位置(从index开始查找,长度为length)。
如果没找到就返回string:
:
npos,
返回字符ch在字符串中第一次出现的位置(从index开始查找)。
如果没找到就返回string:
:
npos
例如,
stringstr1("AlphaBetaGammaDelta");
unsignedintloc=str1.find("Omega",0);
if(loc!
=string:
:
npos)
cout<<"FoundOmegaat"< else
cout<<"Didn'tfindOmega"<
--------------------------------------------------------------------------------
find_first_of
语法:
size_typefind_first_of(constbasic_string&str,size_typeindex=0);
size_typefind_first_of(constchar*str,size_typeindex=0);
size_typefind_first_of(constchar*str,size_typeindex,size_typenum);
size_typefind_first_of(charch,size_typeindex=0);
find_first_of()函数:
查找在字符串中第一个与str中的某个字符匹配的字符,返回它的位置。
搜索从index开始,如果没找到就返回string:
:
npos
查找在字符串中第一个与str中的某个字符匹配的字符,返回它的位置。
搜索从index开始,最多搜索num个字符。
如果没找到就返回string:
:
npos,
查找在字符串中第一个与ch匹配的字符,返回它的位置。
搜索从index开始。
相关主题:
find()
--------------------------------------------------------------------------------
find_first_not_of
语法:
size_typefind_first_not_of(constbasic_string&str,size_typeindex=0);
size_typefind_first_not_of(constchar*str,size_typeindex=0);
size_typefind_first_not_of(constchar*str,size_typeindex,size_typenum);
size_typefind_first_not_of(charch,size_typeindex=0);
find_first_not_of()函数:
在字符串中查找第一个与str中的字符都不匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
在字符串中查找第一个与str中的字符都不匹配的字符,返回它的位置。
搜索从index开始,最多查找num个字符。
如果没找到就返回string:
:
nops
在字符串中查找第一个与ch不匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
相关主题:
find()
--------------------------------------------------------------------------------
find_last_of
语法:
size_typefind_last_of(constbasic_string&str,size_typeindex=npos);
size_typefind_last_of(constchar*str,size_typeindex=npos);
size_typefind_last_of(constchar*str,size_typeindex,size_typenum);
size_typefind_last_of(charch,size_typeindex=npos);
find_last_of()函数:
在字符串中查找最后一个与str中的某个字符匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
在字符串中查找最后一个与str中的某个字符匹配的字符,返回它的位置。
搜索从index开始,最多搜索num个字符。
如果没找到就返回string:
:
nops
在字符串中查找最后一个与ch匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
相关主题:
find()
--------------------------------------------------------------------------------
find_last_not_of
语法:
size_typefind_last_not_of(constbasic_string&str,size_typeindex=npos);
size_typefind_last_not_of(constchar*str,size_typeindex=npos);
size_typefind_last_not_of(constchar*str,size_typeindex,size_typenum);
size_typefind_last_not_of(charch,size_typeindex=npos);
find_last_not_of()函数:
在字符串中查找最后一个与str中的字符都不匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
在字符串中查找最后一个与str中的字符都不匹配的字符,返回它的位置。
搜索从index开始,最多查找num个字符如果没找到就返回string:
:
nops
在字符串中查找最后一个与ch不匹配的字符,返回它的位置。
搜索从index开始。
如果没找到就返回string:
:
nops
相关主题:
find()
--------------------------------------------------------------------------------
get_allocator
语法:
allocator_typeget_allocator();
get_allocator()函数返回本字符串的配置器.
--------------------------------------------------------------------------------
插入(insert)
语法:
iteratorinsert(iteratori,constchar&ch);
basic_string&insert(size_typeindex,constbasic_string&str);
basic_string&insert(size_typeindex,constchar*str);
basic_string&insert(size_typeindex1,constbasic_string&str,size_typeindex2,size_typenum);
basic_string&insert(size_typeindex,constchar*str,size_typenum);
basic_string&insert(size_typeindex,size_typenum,charch);
voidinsert(iteratori,size_typenum,constchar&ch);
voidinsert(iteratori,iteratorstart,iteratorend);
insert()函数的功能非常多:
在迭代器i表示的位置前面插入一个字符ch,
在字符串的位置index插入字符串str,
在字符串的位置index插入字符串str的子串(从index2开始,长num个字符),
在字符串的位置index插入字符串str