STL系列 - string
前言
STL(Standard Template Library)为我们封装了许多实用的数据结构、算法和操作函数。学会它们可以为我们敲代码的过程提供许多便利,但在使用之前也要先记住它们各自的用法。
string 类型是 C++ 区别于 C 单独封装的字符串类型。相对与 C 的字符数组,C++的字符串类型提供了多种方便的操作函数,这些函数都在头文件 <string> 中。
1.1 定义和基本操作
string 类型与普通的变量类型相似,可直接用cin进行输入,但使用scanf 时需进行预分配空间(一般不推荐用scanf)输入。
#include<iostream>
#include<string>
string s;
cin>>s;
/*另一种方法*/
s.resize(100);
scanf("%s",&s);//此时输入长度不能超过100个字符,有很大局限性
string同样支持多维数组的定义,一般情况下,string的类型本身即为一个一维数组,通过[]可直接访问这个字符串的每一个字符,下标从0开始。
string s[100]//支持数组定义,此时相当于一个二维字符型数组
string test;
cin>>s[1]>>test;//输入方法相同
for(int i=0;i<=5;i++)cout<<s[1][i]<<' ';//支持下标访问每一个字符
for(int i=0;i<=5;i++)cout<<test[i]<<' ';
1.2 操作函数
1.2.1 查找函数 .find()
不同于 STL 中自带的 find() 函数,这个函数是 string 自己的查找函数。STL 自带的 find 仅能查找字符,但 string 的可以查找字符串。
- 参数设置
.find()中可以传入字符或字符串。
.find()返回从左往右第一个匹配成功的字串的第一个字符的下标,如果未能匹配成功则返回一个string::npos,在if语句中体现为 -1,可用作判断。
string s="qwertytkkksc03chen_zhe";
cout<<s.find('t')<<'\n';//传入字符,此时输出第一个't'的下标,为4
cout<<s.find("kkksc03")<<'\n';//传入字符串,此时输出原串中第一个字串的第一个字符'k'在原串中的下标,为7。
//判断未找到的两种方法,均可使用
string s="qwertytkkksc03chen_zhe";
if(s.find("xht")==string::npos) cout<<"Not Found!";
if(s.find("xht")==-1) cout<<"Not Found!";
迁移自云剪贴板
迁移自洛谷

浙公网安备 33010602011771号