C++【string】用法和例子
2024-10-07 21:51:31
/***
* string 基础api复习
* 8 AUG 2018
*/ #include <iostream>
#include <string>
using namespace std; void print(string str, int index)
{
std::cout << "str" << index << " = " << str << std::endl;
} int main()
{
// string对象初始化
string str0("i am a boy~");
string str1 = "hello world!";
string str2(str1);
string str3(, 'c');
string str4(str1, , ); // 从【2】索引起始,长度为3的字符串 print(str0, );
print(str1, );
print(str2, );
print(str3, );
print(str4, ); // string相关简单函数
bool power;
int str_len;
char te_ch;
string te_str;
power = str0.empty(); // 判断字符串是否为空
std::cout << "power = " << power << std::endl;
str_len = str1.size(); // 字符串长度
std::cout << "str_len = " << str_len << std::endl;
te_ch = str2[]; // 返回字符串的第n个字符,下标从0开始
std::cout << "str2[4] = " << te_ch << std::endl;
te_ch = str2.at(); // 返回字符串的第n个字符,下标从0开始,同上
std::cout << "str2.at(4) = " << te_ch << std::endl;
te_str = str1 + str0; // 连接两个字符串变成一个新的字符串
std::cout << "str1 + str0 = " << te_str << std::endl;
te_str = str3; // 替换字符串
std::cout << "te_str = " << te_str << std::endl;
te_str.append(str0); // 追加字符串
std::cout << "te_str = " << te_str << std::endl;
te_str.assign(str0); // 为字符串对象赋值
std::cout << "te_str = " << te_str << std::endl; // str.begin()&&str.end()均为迭代器
string::iterator it = str0.begin(); // 字符串迭代器,类似指针
std::cout << "it = " << (*it) << std::endl; // string::c_str()
char* char_str = new char[strlen(str0.c_str()) + ];
strcpy(char_str, str0.c_str()); // 当需要将字符串转成const char*时,用c_str(意味着转换成C语音的方式)
std::cout << "char_str = " << char_str << std::endl;
delete []char_str;
char_str = NULL; // string::erase(),注意,erase后迭代器自动指向后一个位置
str0.erase(, ); // 从index值为5.删除长度为4个字符
std::cout << "str0.erase(5, 2) = " << str0 << std::endl;
str0.erase(str0.begin() + ); // 删除index值为2的字符
std::cout << "str0.erase(str0.begin() + 2) = " << str0 << std::endl;
str0.erase(str0.begin() + , str0.end() - ); // 从index值为2,删除到index末尾减一
std::cout << "str0.erase(str0.begin() + 2) = " << str0 << std::endl; // string::find()
std::size_t found = str1.find(str4, ); // 从str1中找str4第一次出现的地方
if (found != string::npos)
std::cout << "first found is " << found << std::endl;
found = str1.find('o'); // 从str1中找o第一次出现的地方
if (found != string::npos)
std::cout << "first found is " << found << std::endl;
found = str1.find("world"); // 从str1中找world第一次出现的地方
if (found != string::npos)
std::cout << "first found is " << found << std::endl; // string::insert()
str0.insert(, " love"); // 在str0的index值为1后插入 love
print(str0, );
str0.insert(, " you", , ); // 在str0的index值为6后插入 you中从index值为0到长度为3的字符串
print(str0, );
str0.insert(, str1); // 在str0的index值为0后插入str1
print(str0, ); // string::length()与string::size()用法相同,值也一样
std::cout << "str0.length() = " << str0.length() << " str0.size() = " << str0.size() << std::endl; // string::maxsize()返回能够存储字符串的最大长度
std::cout << "str0.max_size() = " << str0.max_size() << std::endl; // string::rbegin()和string::rend()逆向迭代器
for (string::reverse_iterator it = str0.rbegin(); it != str0.rend(); it++)
{
std::cout << (*it);
}
std::cout << std::endl;
print(str0, ); // 这个是algorithm里面的,混入是为了对比效果
reverse(str0.begin(), str0.end());
print(str0, ); // string::replace()用法类似string::insert()
str0.replace(, , "ni hao", , );
print(str0, ); // string::substr()
te_str = str0.substr(, );
std::cout << "te_str = " << te_str << std::endl; // string::swap()
te_str.swap(str0);
print(str0, );
std::cout << "te_str = " << te_str << std::endl; while (true)
{
getchar();
}
return ;
}
最新文章
- UIKit - scrollView缩放、滚动
- hdu1950 最长上升子序列nlogn
- 2016年11月26日 星期六 --出埃及记 Exodus 20:17
- How to understand ReferenceGroup control on Form[AX2012]
- Express难点解析
- hdu 2817 A sequence of numbers(快速幂)
- Nginx 在安装入门
- AJAX 表单提交 文件上传
- 数据结构与算法系列研究七——图、prim算法、dijkstra算法
- C#等同于正则表达式的写法
- Kestrel.Transport.Sockets分析与使用
- 【转】使用 lsof 查找打开的文件
- 调试阶段 获取微信小程序openid
- raid的一些简单知识
- 04-基本的mysql语句
- 系统的Drawable(一)
- python you-get 下载视频
- java对象转json对象
- gulp入门详情
- spring boot: @Retention注解 @Documented 注解 @Inherited 注解