信奥赛中 字符串常用函数 大全(详细版)

字符串常用函数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)-青少年编程等级考试及竞赛题库

  1. cppCopy codefor (auto it = s.begin(); it != s.end(); ++it) { 
  2. cout << *it;} 
  3.  
  4. for (char c : s) 

用途: 使用基于范围的循环遍历字符串中的每个字符。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

返回值: 无返回值。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy codefor (char c : s) { 
  2. cout << c; 

搜索和匹配E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

regex_match(s, regex)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

用途: 检查整个字符串是否匹配正则表达式。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy coderegex r("[a-z]+"); 
  2. bool isMatch = regex_match("abc", r); 
  3. regex_search(s, regex) 

用途: 在字符串中搜索是否有匹配的部分。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

返回值: 返回布尔值 true 或 false。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy coderegex r("a.c"); 
  2. bool found = regex_search("abc", r); 

字符串流操作E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

stringstreamE1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

用途: 用于操作字符串的流类,方便字符串和其他类型之间的转换。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy codestringstream ss; 
  2. ss << 123 << " " << 456; 
  3. string s = ss.str(); 

 E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

getline(ss, s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

用途: 从流中读取一行到字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

返回值: 返回流对象的引用。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy codestringstream ss("Hello World"); 
  2. string s; 
  3. getline(ss, s); // s now contains "Hello World" 

 E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

字符串的修剪(需要自定义实现)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

trim(s)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

用途: 去除字符串前后的空白字符(需要自定义实现)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

返回值: 返回修剪后的字符串。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

示例:E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. cppCopy codestring trim(string s) { 
  2. s.erase(s.begin(), find_if(s.begin(), s.end(), [](unsigned char ch) { 
  3. return !isspace(ch); 
  4. })); 
  5. s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char ch) { 
  6. return !isspace(ch); 
  7. }).base(), s.end()); 
  8. return s; 

大小写转换(需要自定义实现或使用C字符串函数)E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. transform(s.begin(), s.end(), s.begin(), ::toupper) 

 E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

将字符串 s 中的所有字符转换为大写。返回空 (void)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. transform(s.begin(), s.end(), s.begin(), ::tolower) 

将字符串 s 中的所有字符转换为小写。返回空 (void)。E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

这些函数涵盖了竞争性编程中的大多数字符串操作,特别是在IOI中可能会用到的操作E1Y100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

字符串常用函数

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢