C++【string】用法和例子
/***
* 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 ;
}
C++【string】用法和例子的更多相关文章
- 我教女朋友学编程html系列(5) html中table的用法和例子
女朋友不是学计算机的,但是现在从事计算机行业,做技术支持,她想学习编程,因此我打算每天教她一点点,日积月累,带她学习编程,如果其他初学者感兴趣,可以跟着学. 为了将table介绍的简单.生动,具有实战 ...
- C++ string的用法和例子
使用场合: string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且st ...
- [UE4]C++ string的用法和例子
使用场合: string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且st ...
- CodeSmith 基础用法和例子
〇. 前言 一. 工具设置 CodeSmith默认是不支持中文的,那么我们必须要先设置使其支持中文显示,保存.并且要能够在生成文件中支持中文. [Tools ...
- 用于模式匹配的String方法和RegExp方法
上一节总结了创建正则表达式的语法,这一篇笔者总结了用于模式匹配的String四个方法:search().replace().match().split()以及用于模式匹配的RegExp两个方法exec ...
- sqlMetal用法和例子 自定义DBML
SqlMetal是跟随VS发布的一个自动工具,可以用来生成数据库的Linq代码. 这是中文版的帮助文件. SqlMetal [选项] [<输入文件>] 为 .NET Framework 的 ...
- Android List<Map<String,String>转json(例子)
package com.armslee.json.test.cases; import java.util.ArrayList; import java.util.HashMap; import ja ...
- String.Format 格式化例子
//格式为sring输出// Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);替换符// Label2.Text ...
- Scala 孤立对象和单例对象方法体的用法和例子
[学习笔记] 1 以object关键字修饰一个类名,这种语法叫做孤立对象,这个对象是单例的. 相当于将单例类和单例对象同时定义.相当于java中的单例,即在内存中只会存在一个Test3实例.创建一个 ...
随机推荐
- 【笔记篇】斜率优化dp(二) SDOI2016征途
=======传=送=门======= 搜题目名会搜出很多奇怪的东西... 这个题目似乎有点毒? 比如在bzoj和loj上可以1A的代码上会在luogu TLE 2个点, 在cogs TLE 10个点 ...
- 一个有关group by的错误
事例:查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资 SELECT department_name,MIN(salary),departments.manager_idFROM dep ...
- Linux下screen的应用
在linux系统下,通常我们在执行一些运行时间比较长的任务时,放到后台执行或者使用screen和nohup都是不错的选择,因为任务执行的时间太长了,必须等待它执行完毕,在此期间可不能关掉窗口或者断开连 ...
- CSS——滑动门技术及应用
先来体会下现实中的滑动门,或者你可以叫做推拉门: 滑动门出现的背景 制作网页时,为了美观,常常需要为网页元素设置特殊形状的背景,比如微信导航栏,有凸起和凹下去的感觉,最大的问题是里面的字数不一样多,咋 ...
- LUOGU P3919 【模板】可持久化数组(主席树)
传送门 解题思路 给每一时刻建一棵线段树维护当前时刻的值,然后修改的时候直接修改,查询的时候直接查,记住查询完后一定要复制. 代码 #include<iostream> #include& ...
- csp-s模拟测试89
csp-s模拟测试89 $T1$想了一会儿没什么思路,一看$T2$ $1e18$当场自闭打完暴力就弃了,$T3$看完题感觉要求$lca$和$dep$,手玩了一下样例发现$lca$很显然,$dep$貌 ...
- 软件-开发软件:Android Studio
ylbtech-软件-开发软件:Android Studio Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT, ...
- .NETFramework-Web.Mvc:HttpXxxAttribute-目录
ylbtech-.NETFramework-Web.Mvc:HttpXxxAttribute-目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返 ...
- c++中变量、变量名、变量地址、指针、引用等含义
首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5...... 房间里面一定要住人,新人住进去了,原来的人就走了:不管你住不住,里面都有人. 编号就是地址.里面的人就是内容,为了我们 ...
- CCPC 2019 网络赛 1006 Shuffle Card
// 签到题,比赛时候写双向链表debug了半天,发现有更好方法,记录一下. Shuffle Card HDU 6707 题意: 有一 \(n\) 张卡片,编号 \(1~n\) ,给定初始编号 ...