string类的常用接口

251 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情


string类的常用接口

  • find

在这里插入图片描述 查找字符或者字符串所在的位置,查找到就返回它们的第一次出现的位置,否则返回npos nops-1size_t的时候会变成一个非常大的值。 在这里插入图片描述

  • rfind

在这里插入图片描述 从字符串pos位置的字符开始向前进行查找,当pos的值为npos或者为size_t()-1 时就是对整个字符串进行查找。第(3)个是从[pos,pos+n)进行查找。

	string str("ml is cool");
	cout << str.find("is") << endl;
	cout << str.rfind('i',5) << endl;

在这里插入图片描述

  • find_first_of

在这里插入图片描述find差不多,只不过它是从字符串的pos位置开始向后查找,只要发现和str中的任意一个字符相同,则就返回该字符的位置。

	string s("ml is cool");
	cout << s.find_first_of("abc", 1) << endl;

输出的结果为6。


  • substr

在这里插入图片描述 生成新的string对象,子串是从pos的位置向后获取len个字符,即[pos,pos+len)len的类型为无符号的整型size_t,所以当值很大的时候,是到字符串的结尾。当然负数转为size_t的时候也会变的很大。

	string s("ml is cool");
	string str;
	str = s.substr(02);
	cout << str << endl;

在这里插入图片描述

  • getline

如何获取一行字符串呢?仅仅靠cin,是不行的。这里提供一个函数getline,它不是在string这个类里面的函数,而是std标准库里面的。 下面看它的使用: 在这里插入图片描述 对于(1),第一个参数为输入流(cin从键盘上输入),第二个参数为string对象,而第三个参数为以什么结束的字符。 当没有第三个参数的时候,结束以\n为结束的。

	string str;
	getline(cin, str);
	cout << str << endl;

在这里插入图片描述