c++中字符串操作总结

本文详细介绍了C++中字符串的输入、拼接、子串提取和长度获取等基本操作。通过示例展示了如何使用cin、getline、+运算符以及substr函数。同时,还讲解了length()函数用于获取字符串长度的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符串输入*

1)可以使用cin的方式

string name = " "; //初始化
cin >> name >>endl;

2)使用getline函数

#include <string>
string name = " ";
getline(cin, name);

2.不同字符串变量可以使用“+”进行拼接

string name1 = "aaa";
string name2 = "bbb";
string name3 = name1 + " " + name2;
cout << name3;
//结果是 aaa bbb,中间含有空格

3. 使用成员函数substr提取子串

#include <string>
string name = "hijack";
string sub = name.substr(2,4);
cout << sub;
//结果是 sub = "jack"

name.substr(2,4)用法:2表示从字符串变量name的第二个字母开始提取,4表示提取子串的长度为4

4.字符串函数length

// .length()函数用于获取字符串长度
srting name = "Li ming";
int n = name.length();
//结果是n = 7,长度包含空格
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 HttpServletRequestWrapper 是 Java Servlet API 中的一个工具类,位于 javax.servlet.http 包中,用于对 HttpServletRequest 对象进行封装,从而在 Web 应用中实现对 HTTP 请求的拦截、修改或增强等功能。通过继承该类并覆盖相关方法,开发者可以轻松地自定义请求处理逻辑,例如修改请求参数、添加请求头、记录日志等。 参数过滤:在请求到达处理器之前,可以对请求参数进行检查或修改,例如去除 URL 编码、过滤敏感信息或进行安全检查。 请求头操作:可以修改或添加请求头,比如设置自定义的 Content-Type 或添加认证信息。 请求属性扩展:在原始请求的基础上添加自定义属性,供后续处理使用。 日志记录:在处理请求前记录请求信息,如 URL、参数、请求头等,便于调试和监控。 跨域支持:通过添加 CORS 相关的响应头,允许来自不同源的请求。 HttpServletRequestWrapper 通过继承 HttpServletRequest 接口并重写其方法来实现功能。开发者可以在重写的方法中添加自定义逻辑,例如在获取参数时进行过滤,或在读取请求体时进行解密。当调用这些方法时,实际上是调用了包装器中的方法,从而实现了对原始请求的修改或增强。 以下是一个简单的示例,展示如何创建一个用于过滤请求参数的包装器: 在 doFilter 方法中,可以使用 CustomRequestWrapper 包装原始请求: 这样,每当调用 getParameterValues 方法时,都会先经过自定义的过滤逻辑。 HttpServletRequestWrapper 是 Java Web 开发中一个强大的工具,它提供了灵活的扩展性,允许开发者
### C++字符串操作的总结与常见用法 在 C++ 中,`std::string` 是标准库中用于处理字符串的一个非常重要的类。它提供了丰富的接口和功能,可以方便地进行字符串的构造、遍历、修改以及运算符重载等操作。 #### 1. 构造函数 `std::string` 提供了多种构造函数来创建字符串对象[^1]。以下是一些常见的构造方式: ```cpp std::string s1; // 默认构造函数 std::string s2("Hello"); // 使用C风格字符串初始化 std::string s3(s2); // 拷贝构造函数 std::string s4(5, 'a'); // 创建包含5个字符'a'的字符串 ``` #### 2. 遍历字符串 可以通过多种方式遍历 `std::string` 对象中的字符[^3]。以下是三种常见的遍历方法: - **下标法**: ```cpp for (int i = 0; i < s1.size(); i++) { std::cout << s1[i] << std::endl; } ``` - **正向迭代器**: ```cpp for (std::string::iterator it = s1.begin(); it != s1.end(); ++it) { std::cout << *it << std::endl; } ``` - **范围 for 循环(C++11 及以上版本)**: ```cpp for (char ch : s1) { std::cout << ch << std::endl; } ``` #### 3. 字符串的修改操作 可以对 `std::string` 对象中的字符进行修改[^2]。例如: ```cpp std::string s1 = "hello"; s1[0] = 'H'; // 将第一个字符改为'H' std::cout << s1 << std::endl; // 输出 "Hello" ``` 需要注意的是,如果字符串是 `const` 类型,则不能对其进行修改。 #### 4. 运算符重载 `std::string` 支持多种运算符重载,包括连接、比较等操作[^4]。以下是一些示例: - **字符串连接**: ```cpp std::string s1 = "Hello"; std::string s2 = "World"; std::string s3 = s1 + " " + s2; // 结果为 "Hello World" std::cout << "s3 = " << s3 << std::endl; ``` - **字符串比较**: ```cpp std::string s1 = "Hello"; std::cout << (s1 == "Hello") << std::endl; // 输出 1(true) std::cout << (s1 < "Hi") << std::endl; // 输出 0(false) ``` #### 5. 常见函数 `std::string` 提供了许多实用的成员函数[^3],例如: - **获取长度**:`size()` 或 `length()` - **查找子串**:`find()` - **替换子串**:`replace()` - **插入字符**:`insert()` - **删除字符**:`erase()` 以下是一个示例代码: ```cpp std::string s = "hello world"; std::cout << "Length: " << s.size() << std::endl; // 输出 11 std::cout << "Find 'world': " << s.find("world") << std::endl; // 输出 6 s.replace(6, 5, "C++"); // 替换 "world" 为 "C++" std::cout << s << std::endl; // 输出 "hello C++" ``` ### 总结 `std::string` 是 C++ 标准库中一个功能强大的工具,能够满足大多数字符串操作的需求。通过掌握其构造函数、遍历方法、修改操作以及运算符重载等功能,可以更加高效地进行字符串处理[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值