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实例.创建一个 ...
随机推荐
- innodb 表
1.innodb的存储引擎表类型 如果在创建表时没有显示的定义主键,则innodb存储引擎会按如下方式选择或创建主键 a.首先表中是否有非空的唯一约束(Unique not null)如果有,则该列即 ...
- css 苹方字体
苹方-简 常规体 font-family: PingFangSC-Regular, sans-serif; 苹方-简 极细体 font-family: PingFangSC-Ultralight, s ...
- jQuery - DOM对象和jQuery对象
DOM对象 : 直接使用JavaScript获取的节点对象 jQuery对象 : 使用jQuery选择器获取的节点对象 DOM对象和jQuery对象分别拥有一套独立的方法, 不能混用 <scri ...
- Bubble Cup 12 - Finals [Online Mirror, unrated, Div. 1] E. Product Tuples
题意略,题解生成函数练习题,1+(q-ai)x卷积即可,线段树优化(类似分治思想) //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pra ...
- Android Scroller简单用法 --View滚动
转:http://ipjmc.iteye.com/blog/1615828 Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View中 ...
- 尚学linux课程---3、linux网络说明
尚学linux课程---3.linux网络说明 一.总结 一句话总结: 如果NAT模式:linux,VMnet8,虚拟出来的路由器 要在同一个网段, 那么 linux才能 通过 网络地址转换 经过wi ...
- linux大神
http://blog.csdn.net/skykingf/article/category/780616
- python笔记四
#!/usr/bin/env python3 from datetime import datetime, timedelta # datetime是模块,datetime模块还包含一个datetim ...
- C#winform解析marc显示在datagridview中以及marc卡片显示
结果显示:marc显示: 卡片显示: 程序一个类: public class MARC { #region 界面上要显示的元素 public string ztm = "";//正 ...
- Windows与Linux获取进程集合的方法
Windows: List<String> tasklist=new ArrayList<String>(); try { Process process = Runtime. ...