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实例.创建一个 ...
随机推荐
- ConvertBSTRToString导致的内存泄漏
函数原型 char* __stdcall ConvertBSTRToString(BSTR pSrc); 这个指针指向的是一块动太分配的内存,如果把这个函数做为其它函数的参数,那么这块内存就会被泄漏掉 ...
- vuex 基本使用
vuex:同一状态(全局状态)管理,简单的理解,在SPA单页面组件的开发中,在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取.修改,并且你的修改可以同步全局. 1,安装 n ...
- 异或前缀和——cf1186C
很思维的题,b的1个数和c的1个数相差为偶数时,必定有偶数个不同 反之必定有奇数个不同 #include <iostream> #include <cstdlib> #incl ...
- VC++ COMBO BOX控件的使用
1.你在编辑状态下点那个控件的向下的三角形,就出冒出来一个可以调高度的东东.将高度调高,否则在执行时会不能显示下拉选项. 2.为combo box添加选项,在编辑状态下选combo box控件的属 ...
- VS2010-MFC(常用控件:滚动条控件Scroll Bar)
转自:http://www.jizhuomi.com/software/191.html 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合框设置了相应属性 ...
- 软件-开发工具:Gradle
ylbtech-软件-开发工具:Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明 ...
- Classpath in jar关于java加载第三方jar的集中方法和详细解释。
转载地址:http://www.iteye.com/topic/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个ja ...
- 可拖拽排序的vue组件
最近在优化一个vue的博客系统,想实现文章列表处的文章拖拽功能.就试了一下awe-dnd vue插件,觉得还挺好用的. 安装 npm install awe-dnd --save 使用 在main.j ...
- 用原生js封装轮播图
原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不 ...
- 9.1 mongo_python.py
# 安装 pymongo pip install pymongo import pymongo try: # 1.链接mongod的服务 mongo_py = pymongo.MongoClient( ...