C++ string
昨天学习了string,本以为没神马用,因为看上去跟原有的strcmp,strcpy,strcat,没神马区别,后来据说类中必须要用到他,才开始学习他的几个操作,几个重要操作;( 如果一个字符串是用string定义的,不是用char定义的那么上面三个字符串函数都不能用了,若要用只能用char定义 )( 一下s,str代表字符串,ch代表字符 )
1 string 初始化赋值: string str( s )( 以s作为str的初值 ),string str( s , length )( 以s的前length个字符作为str的初值 ),string str( s , pos , length ),把s中从pos起的length个字符作为str的初值,string str( n, ch ),以n个ch字符作为str的初值;
2 string运算符:+,把两个字符串相加组成行的字符串 ,如 s3 = s1 + s2,s3 为 s1 和 s2 链接后字符串s3. += 这个不解释了吧。。。 跟 int中的+= 一样的,相当于strcat。 = 这个更不用说了吧,就是直接赋值,相当于strcpy.[] 这个还是可以用的,str[2],str[3].还有 >, >=,<,<= ,==,!=.
3 string 类大小属性函数:size( ),很形象 str.size( )返回的就是str中字符串的个数,str.empty( )返回的就是str是否为空,若为空则返回1,否则返回0.str.substr( pos,length )返回的就是str从第pos个字符起的length个字符。
4 string重用操作:
( 1 ) 插入:
insert( pos,s ),在当前字符串的第pos个字符插入字符串s,如str = "1234",s = "abc",str.insert( 1,s ),运行结果str = 1abc234;
insert( pos,s,length ),在当前字符串的第pos个字符把s的前length个字符插入;
insert( pos,s,p,length ),在当前字符串的第pos个字符把s中从p开始的length个字符插入;如str = "1234",s = "abc",str.insert( 1,s,1,2 ),运行结果为str = 1bc234;
( 2 ) 添加
append( s ),在当前字符串最后链接s;
append( s,length ),在当前字符串后把s的前length个字符接上去。
append( s,pos,length ),在当前字符串后面接上s从pos开始的length个字符串。如str = "1234",s = "abc",
str.insert( s,1,1 ),运行结果为,str = 1234b;
( 3 )其他
copy( s,length,pos ),据说是这么用的,我用了一直报错,不知怎么办,请大牛赐教。
erase( pos,lenth ) 把当前字符串中第pos个开始的length个字符都删除
swap( s1,s2 )这个够形象吧。交换字符串s1,s2;
( 4 )替换
replace( pos1,length1,s,pos2,length2 )把当前字符中第pos1个字符开始的length1个字符用s中pos2开始的个字符代替。
replace( pos1,length1,s );
replace( pos1,length1,s,length2 );
replace( pos1,length1,n,ch )把当前字符中pos1开始的length1个字符替换成n个ch字符
( 5 )比较
compare( s );
compare( pos1,length1,s );
compare( pos1,length1,s,pos2,length2 );