三级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++三级考试大纲知识点梳理, (6) 字符串
📅 2025-04-08·✍️ OneCoder·计算中...·⏱️ 8 分钟
#GESP#C++#考试大纲
GESP C++三级官方考试大纲中,共有8条考点,之前已对前4个考点进行了总结梳理,6号考点是关于C++语言字符串应用的,属于基本语言语法和应用范围,网上的资料很多,本不想再赘述。但在孩子做题的过程中发现,对字符串应掌握哪些常用函数以及如何应用还不是很熟悉,因此将这部分内容单独整理出来,供孩子参考。
(6)掌握字符串及其函数的使用包括但不限于大小写转换、字符串搜索、分割、替换。
字符串常用函数详解
1. 基本操作函数
1.1 长度和容量
size()/length(): 返回字符串长度empty(): 判断字符串是否为空capacity(): 返回当前分配的存储空间大小
C++
4 行
string str = "Hello";
cout << str.size() << endl; // 输出:5
cout << str.empty() << endl; // 输出:0(false)
cout << str.capacity() << endl; // 输出:15(可能因编译器不同而异)
1.2 访问和修改
at(pos): 访问指定位置字符(带边界检查)operator[]: 访问指定位置字符(无边界检查)front(): 访问第一个字符back(): 访问最后一个字符
C++
5 行
string str = "Hello";
cout << str.at(0) << endl; // 输出:H
cout << str[1] << endl; // 输出:e
cout << str.front() << endl; // 输出:H
cout << str.back() << endl; // 输出:o
2. 字符串修改函数
2.1 添加和删除
append(): 在末尾添加字符串push_back(): 在末尾添加单个字符insert(): 在指定位置插入erase(): 删除指定位置的字符或子串clear(): 清空字符串
C++
5 行
string str = "Hello";
str.append(" World"); // Hello World
str.push_back('!'); // Hello World!
str.insert(5, " C++"); // Hello C++ World!
str.erase(5, 4); // Hello World!
2.2 替换和子串
replace(): 替换子串substr(): 获取子串
C++
3 行
string str = "Hello World";
str.replace(6, 5, "C++"); // Hello C++
string sub = str.substr(6, 3); // 获取子串:"C++"
3. 字符串查找函数
3.1 查找函数
find(): 从前向后查找子串,返回找到的第一个匹配子串的起始位置。返回值类型为size_t。若未找到则返回string::npos(通常是 -1)rfind(): 从后向前查找子串,返回找到的最后一个匹配子串的起始位置。返回值类型为size_t。若未找到则返回string::nposfind_first_of(): 查找字符串中第一个与指定字符集合中任意字符匹配的位置。返回值类型为size_t。若未找到则返回string::nposfind_last_of(): 查找字符串中最后一个与指定字符集合中任意字符匹配的位置。返回值类型为size_t。若未找到则返回string::nposfind_first_not_of(): 查找字符串中第一个不在指定字符集合中的字符位置。返回值类型为size_t。若未找到则返回string::nposfind_last_not_of(): 查找字符串中最后一个不在指定字符集合中的字符位置。返回值类型为size_t。若未找到则返回string::npos
C++
4 行
string str = "Hello World Hello";
cout << str.find("Hello") << endl; // 输出:0
cout << str.rfind("Hello") << endl; // 输出:12
cout << str.find_first_of("aeiou") << endl; // 输出:1(e的位置)
4. 字符串转换函数
4.1 大小写转换
toupper(): 转换为大写tolower(): 转换为小写
C++
3 行
string str = "Hello";
transform(str.begin(), str.end(), str.begin(), ::toupper); // HELLO
transform(str.begin(), str.end(), str.begin(), ::tolower); // hello
4.2 类型转换
to_string(): 数值转字符串stoi(),stol(),stof(),stod(): 字符串转数值
C++
3 行
int num = 42;
string str = to_string(num); // 数字转字符串
int back = stoi("42"); // 字符串转数字
5. 字符串比较函数
compare(): 比较字符串- 关系运算符:
==,!=,<,>,<=,>=
C++
4 行
string str1 = "Hello";
string str2 = "World";
cout << str1.compare(str2) << endl; // 输出负数(str1 < str2)
cout << (str1 < str2) << endl; // 输出:1(true)
这些是 C++ 字符串操作中最常用的函数,掌握这些函数可以帮助更好地处理字符串相关的问题。
字符大小写判断和转换函数
1. 字符判断函数
C++ 提供了一系列用于判断字符类型的函数,这些函数定义在 <cctype> 头文件中:
isupper(c): 判断字符是否为大写字母islower(c): 判断字符是否为小写字母isalpha(c): 判断字符是否为字母isdigit(c): 判断字符是否为数字isalnum(c): 判断字符是否为字母或数字isspace(c): 判断字符是否为空白字符
C++
7 行
char c = 'A';
if (isupper(c)) {
cout << c << " 是大写字母" << endl;
}
if (isalpha(c)) {
cout << c << " 是字母" << endl;
}
2. 字符转换函数
2.1 单个字符转换
toupper(c): 将字符转换为大写tolower(c): 将字符转换为小写
C++
3 行
char c = 'a';
char upper_c = toupper(c); // 'A'
char lower_c = tolower('B'); // 'b'
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
GESP 编程与算法 · 三级⏱️ 8 分钟
【GESP】C++三级考试大纲知识点梳理, (1)二进制数据编码
GESP C++三级官方考试大纲中,共有8条考点,本文针对C++(1)号知识点进行总结梳理。 (1)了解二进制数据编码:原码、反码、补码。
阅读全文 →
GESP 编程与算法 · 三级⏱️ 8 分钟
【GESP】C++三级考试大纲知识点梳理, (2)数据的进制转换
GESP C++三级官方考试大纲中,共有8条考点,本文针对C++(2)号知识点进行总结梳理。 (2)掌握数据的进制转换:二进制、八进制、十进制、十六进制。
阅读全文 →
GESP 编程与算法 · 三级⏱️ 15 分钟
【GESP】C++三级考试大纲知识点梳理, (3)位运算
GESP C++三级官方考试大纲中,共有8条考点,本文针对C++(3)号知识点进行总结梳理。 (3)掌握位运算:与(&)、或(\|)、非()、异或(^)、左移(<<)、右移()的基本使用方法及原理。
阅读全文 →
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
读者讨论与留言
💬 还没有读者留言,快来成为第一个讨论者吧!