字符串常用函数E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
以下是C++中常用字符串操作函数和方法的详细列表,包括每个函数的返回值、用途和示例代码。这些函数和方法在信息学奥赛(IOI)中可能会用到:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串的初始化和赋值E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
string s = "文本";E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 初始化一个字符串对象。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: string s = "Hello";E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.assign("文本");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 赋予字符串一个新的值。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回当前字符串对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: s.assign("World");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串拼接E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s1 + s2E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 连接两个字符串,返回连接后的新字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回一个新的字符串对象。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: string s3 = s1 + s2;E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s += s2;E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 将一个字符串追加到另一个字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回当前字符串对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: s1 += " World";E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串长度E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.size() 或 s.length()E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 获取字符串的长度(字符数)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回 size_t 类型的值,表示字符串的长度(常用 int 代替)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: size_t len = s.size(); int len = s.size();E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
访问字符串中的字符E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s[i]E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 访问索引为 i 的字符,不进行越界检查。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回字符的引用,类型为 char&。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: char c = s[0];E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串比较E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s1 == s2E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 检查两个字符串是否相等。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: bool isEqual = (s1 == s2);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s1 != s2E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 检查两个字符串是否不相等。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: bool isNotEqual = (s1 != s2);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s1 < s2E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
,s1 > s2E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 按字典顺序比较两个字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: bool isLess = (s1 < s2);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
子字符串E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.substr(pos, len)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 从 pos 开始获取长度为 len 的子字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回一个新的字符串对象。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: string sub = s.substr(0, 5);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.find(sub)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 查找子字符串 sub 的第一次出现位置。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回 size_t 类型的值,表示子字符串的起始位置。如果未找到,返回 string::npos。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: size_t pos = s.find("World");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.rfind(sub)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 查找子字符串 sub 的最后一次出现位置。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回 size_t 类型的值,表示子字符串的起始位置。如果未找到,返回 string::npos。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: size_t pos = s.rfind("World");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串的插入和删除E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.insert(pos, "文本")E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 在位置 pos 插入一个子字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回当前字符串对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: s.insert(5, " beautiful");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.erase(pos, len)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 从 pos 开始删除长度为 len 的子字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回当前字符串对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: s.erase(5, 10);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串的修改E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.replace(pos, len, "文本")E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 用另一个字符串替换从 pos 开始的子字符串,替换长度为 len。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回当前字符串对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: s.replace(5, 3, "nice");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串的转换E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
to_string(num)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 将数字转换为字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回一个新的字符串对象。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: string numStr = to_string(123);E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
stoi(s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 将字符串转换为整数。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回 int 类型的值。如果转换失败,抛出 invalid_argument 异常。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: int num = stoi("123");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
stod(s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 将字符串转换为双精度浮点数。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回 double 类型的值。如果转换失败,抛出 invalid_argument 异常。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例: double num = stod("123.45");E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
遍历字符串E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
s.begin()E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
和 s.end()E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 获取字符串的开始和结束迭代器,用于遍历字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回迭代器,类型分别为 string::iterator 和 string::const_iterator。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy codefor (auto it = s.begin(); it != s.end(); ++it) {
- cout << *it;}
-
- for (char c : s)
用途: 使用基于范围的循环遍历字符串中的每个字符。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 无返回值。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy codefor (char c : s) {
- cout << c;
- }
搜索和匹配E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
regex_match(s, regex)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 检查整个字符串是否匹配正则表达式。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy coderegex r("[a-z]+");
- bool isMatch = regex_match("abc", r);
- regex_search(s, regex)
用途: 在字符串中搜索是否有匹配的部分。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy coderegex r("a.c");
- bool found = regex_search("abc", r);
字符串流操作E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
stringstreamE1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 用于操作字符串的流类,方便字符串和其他类型之间的转换。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy codestringstream ss;
- ss << 123 << " " << 456;
- string s = ss.str();
E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
getline(ss, s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 从流中读取一行到字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回流对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy codestringstream ss("Hello World");
- string s;
- getline(ss, s);
E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
字符串的修剪(需要自定义实现)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
trim(s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
用途: 去除字符串前后的空白字符(需要自定义实现)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
返回值: 返回修剪后的字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- cppCopy codestring trim(string s) {
- s.erase(s.begin(), find_if(s.begin(), s.end(), [](unsigned char ch) {
- return !isspace(ch);
- }));
- s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char ch) {
- return !isspace(ch);
- }).base(), s.end());
- return s;
- }
大小写转换(需要自定义实现或使用C字符串函数)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- transform(s.begin(), s.end(), s.begin(), ::toupper)
E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
将字符串 s 中的所有字符转换为大写。返回空 (void)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- transform(s.begin(), s.end(), s.begin(), ::tolower)
将字符串 s 中的所有字符转换为小写。返回空 (void)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
这些函数涵盖了竞争性编程中的大多数字符串操作,特别是在IOI中可能会用到的操作E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库