C++_string知识点总结

标准库类型string

1.   string对象的定义和初始化

(1).string s;  //表示定义string对象,默认为空字符串

(2).string s(s1); 或 string s = s1; //用另一个string对象初始化,并用s1的副本初始化

(3). string s(s1, pos);  //从string对象s1的pos处开始的字符的拷贝;若pos >s1.size()则构造函数的行为未定义

(4).string s(s1, pos, len)  //用s1从pos位置开始的至多len长度字符初始化s,不管len为多少,构造函数至多拷贝s1.size()-pos个字符

(5). string s(n, ‘c’);  //用n个相同字符进行初始化

(6). string s(cp,  n);  //cp是指向字符串的常量指针(constchar*),用cp所指向的字符串的前n个字符初始化string对象;如果省略n,则初始化到遇到空字符

(7). string s = “maple”; 或 string s(“maple”);//用字符串字面值进行初始化

2.string的最常用操作

(1).os << s;  //将s写到输出流os当中,并返回os;

(2).is >>s;  //从is读取字符串赋给s,字符串以空格分隔,并返回is

(3).getline(is, s);  //从is中读取一行赋给s,返回is

关于(3)附:

C++中有两个getline函数,一个是在string头文件中,定义的是一个全局的函数,函数声明是istream&getline ( istream& is, string& str, char delim )istream& getline ( istream& is, string& str );

另一个则是istream的成员函数,函数声明是istream& getline (char* s,streamsize n )istream& getline (char* s, streamsize n, char delim );注意第二个getline是将读取的字符串存储在char数组中而不可以将该参数声明为string类型,因为C++编译器无法执行此默认转换。[ cin.getline(s, 5) ]

(4).s.empty()   //判定字符是否为空

(5).s.size()   //返回s中字符的个数

(6).s[n]   //返回s中第n个字符的引用

(7).s1+s2   //返回s1和s2连接后的结果

(8).s1 = s2;  //用s2中的副本代替s1中的字符串

(9).s1 == s2;  s1 != s2;  //对字符串做等性判断

(10).<,<=,>,>=  //利用字符在字典中的顺序进行比较,且对字母的大小写敏感

3.对string对象使用基于范围的for语句[C++11新标准]

语法形式为: for(declaration : expression)

  Statement;

4.额外的string操作

(1).子字符串操作:s.substr(pos,n) 

返回一个string,包含s中从pos开始的n个字符的拷贝。pos的默认值是0。n的默认值是s.size()-pos,即拷贝从pos开始的所有字

(2).修改string对象的操作

[1] s.insert(pos,args);  //在s的pos位置前插入args

[2] s.erase(pos,len); //删除从位置pos开始的len长度字符。如果len被省略,则删除从pos开始直到s末尾的所有字符。

[3] s.assign(args);  //将s中的字符替换为args指定的字符;

[4] s.append(args); //将args追加到s

[5] s.replace(range, args);  //将s的range范围的字符替换为args

(3).string搜索操作

   [1]s.find(args);  //查找s中args第一次出现的位置

   [2]s.rfind(args);  //查找s中args最后一次出现的位置

(4).compare()函数

   [1]s.compare(s); 

(5).数值转换

   [1]to_string(val);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值