与 string
相关的函数
(一) 输入与长度
getline(cin, s)
: 从标准输入读取一行字符串,存储到s
中,直到遇到换行符为止。与cin
不同,cin
会在遇到空格时停止读取。s.size()
: 返回字符串s
的长度(字符数)。
(二) 寻找与截取
s.find(a, x)
: 在字符串s
中从下标x
开始查找子串a
第一次出现的位置。如果找到,返回子串的起始下标;如果未找到,返回string::npos
(为-1
)。- 参数
x
可以省略,默认从下标0
开始查找。
- 参数
s.substr(i, len)
: 从字符串s
的下标i
开始,截取长度为len
的子串。- 参数
len
可以省略,默认截取从i
开始到字符串末尾的所有字符。 - 如果剩余字符数少于
len
,则只截取剩余部分。
- 参数
(三) 删除、插入与替换
s.erase(i, len)
: 从字符串s
的下标i
开始,删除长度为len
的子串。- 参数
len
可以省略,默认删除从i
开始到字符串末尾的所有字符。
- 参数
s.insert(i, str)
: 在字符串s
的下标i
处插入字符串str
。s.replace(i, len, str)
: 从字符串s
的下标i
开始,将长度为len
的子串替换为字符串str
。
(四) 获取位置(指针)
s.begin()
: 返回指向字符串s
起始位置的指针。s.end()
: 返回指向字符串s
末尾位置的指针。
(五) 类型转换
stoi(s)
: 将字符串s
转换为int
类型的整数。stoll(s)
: 将字符串s
转换为long long
类型的整数。stof(s)
: 将字符串s
转换为float
类型的浮点数。to_string(n)
: 将整数int
或浮点数double
类型的n
转换为字符串。
string
与 char s[]
的区别
-
长度:
char s[]
的长度是固定的,定义时需要指定大小。string
的长度是动态的,可以根据需要自动调整。
-
函数支持:
char s[]
是 C 风格的字符串,支持的函数较少(如strlen
,strcpy
等)。string
是 C++ 标准库中的类,提供了丰富的成员函数(如size()
,find()
,substr()
等)。
-
操作符支持:
string
支持直接使用+
进行字符串拼接,以及使用==
,!=
,<
,>
等进行字符串比较。char s[]
不支持这些操作符,需要使用函数(如strcat
,strcmp
等)来实现类似功能。