C++STL——String字符串的常见用法及函数

2 篇文章 0 订阅

String

string容器是比较方便的字符串,相比于c中的char c[10]

一、String构造方法

C++是一种面向对象的编程,String作为一个类因而就有许多的构造方法

构造方法含义举例结果
string s一个空字符串string s-
string s=…直接初始化一个字符串string s1=“123456”s1=123456
string s(str)字符串str赋值给sstring s2(s1)s2=123456
string s(str,strbegin,strlen)字符串str的第strbegin位及其之后的strlen位,赋值给sstring s3(s1,1,4)s3=2345
string s(num,c)num个字符的一个字符串string s4(3,‘o’)s4=ooo
string s(str,stridx)字符串str中从下标stridx开始到字符串结束的位置赋值给sstring s5(s1,2)s5=3456

二、String的遍历/访问

1.下标

string的使用可以近似的看成字符串,string s="123456",若想访问字符串s的第二位,即想得到’2’,可使用s[1],因为字符串的下标也是从0开始的。

2.正向迭代器

string::iterator iter = s.begin();

for( ; iter<s.end() ; iter++){
        cout<<*iter;
    }

3.反向迭代器

string::iterator riter = s.rbegin();

三、String类常见的类方法

  1. 字符串长度:string.size()
方法函数含义举例结果
size()返回字符串长度s1.size()6
length()返回字符串长度s1.length()6
max_size()返回string对象最多包含的字符数,超出会抛出异常s.max_size()-
capacity()返回string对象声明时候的字符数string s=“123456”;
s=“11”;
s.capacity()
6

四、String的拼接

s="123456"

用法举例结果
+=s+=‘1’s=1234561
s.push_back()尾部插入s.push_back(‘a’)s=123456a
append()s1=s.append(“22”)s1=12345622
s.append(str,num)把字符串前num个字符拼接到s后s2=s.append(“345”,2)s2=12345634
s.append(str,strbegin,strlen)把字符串第strbegin位及之后strlen位拼接到s后s3=s.append(“3456”,1,2)s2=12345645
s.append(n,c)在s后面拼接n个字符cs4=s.append(3,‘o’)s4=123456ooo

五、String查找与替换

s1="123456"

s1.find(str,pos=0);     //查找字符串str第一次出现位置,从pos开始查找
s1.find(s,pos=0,n);     //从pos位置查找s的前n个字符第一次位置
s1.find(c,pos=0);       //查找字符c第一次出现位置
s1.rfind(str,pos=npos); //从后往前查找str第一次出现位置,从pos(默认最尾部)开始查找
s1.rfind(s,pos=0,n);    //从pos查找s的前n个字符最后一次位置
s1.rfind(c,pos=0);      //查找字符c最后一次出现位置
s1.replace(pos,n,str);  //替换s1的从pos开始n个字符为字符串str

六、String的比较

s1.compare(s2) //从前往后比较,若当前位不同则比较两者的ASCII码,s1当前位大返回1,相同返回0,    否则返回-1

s1="Abcd" s2="aBcd"
用法:

s1.compare(s2)
s1.compare(23,s2)
s1.compare(23,s2,23)

七、String的删除

s1="123456"

erase(iterator p);//删除字符串中p所指的字符
erase(iterator first, iterator last);//删除字符串中迭代器区间[first,last)上所有字符
erase(size_t pos = 0, size_t len = npos);//删除字符串中从索引位置pos开始的len个字符
clear();//删除字符串中所有字符

八、String大小写转换

  1. tolower()将大写字符转换成小写
    toupper()将小写字符转换成大写
  2. STL中的transform

九、String排序

s1="bca"

sort(s.begin(),s.end());        //结果为abc

十、String分割

// strrok(str,split)       以split为分隔符分割str
//示例
char str[] = "I,love,you";
const char *split = ",; !";
char *p2 = strtok(str,split);
while( p2 != NULL ){
    cout<<p2<<endl;
    p2 = strtok(NULL,split);
}
/*
I
love
you
*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值