7.7字符串类string

C++语言也封装了字符串类string,功能非常强大。string类型的字符串可以直接输入、输出,可以用<、<=、>、>=、==比较大小,可以用“+”号拼接两个字符串,也可以通过下标引用字符串中的字符,等等。string类也提供了丰富的函数以下列出一些常用的函数
int size() const;   //返回当前字符串的大小,即长度
int length() const;  //返回当前字符串的长度
bool empty() const;   //当前字符串是否为空
void swap(string&s2);   //交换当前字符串与s2的值
string substr(int pos = 0, int n = npos)const;   //返pos开始的n个字符组成的字符串

int find(char c, int pos = 0)const;   //从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0)const;   //从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n)const;   //从pos开始查找字符串s中前n个字符
组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值(npos是一个常量,用来表示不存在的位置)
int find(const string&s,int pos=0)const;   //从pos开始查找字符串s在当前串中的位置
清空字符串的方法:s=" "、s.clear()、s.erase()
字符串逆序的方法:reverse(s.begin(), s.end()) 

注意:

①用cin读入string类型的字符串时,也是以空格、Tab键、回车键这3类空白字符作为输入结束的。如果要将包含空格的字符串读入到string类型的字符串s,需要使用getline(cin,s),这种输入方式是以回车换行表示输入结束 

②用getline函数读入string类型的字符串s时,如果前面有输入数据,则会读入上一行的换行符,这时需要专门用getchar()或cin等方法跳过上一行的换行符,如果是用cin.getline(s,101)这种方式读入一个字符串到字符数组s,也是存在这样的问题,处理方法是一样 

int n; string s1,s2;
cin >> n;  //先读入一个整数,如25
//跳过上一行的换行符,可以用一下任意一种方法
getchar()  //(1)只读入换行符,但不储存
//char c; c = getchar();  //(2)读入换行符并保存到一个临时变量中
//char c; cin >> c;   //(3)读入换行符并保存到一个临时变量中
getline(cin, s1);  //假设输入“a b c”
getline(cin, s2);  //假设输入“aaa bbb ccc”
cout << s1 << endl;  //输出:a b c
cout << s2 << endl;  //输出:aaa bbb ccc
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值