C++ STL之string常用指令
string,大小可变的字符串,有些类似于C中的字符数组。
只记载本人在ACM中常用的函数,并且全部经过程序测试。
1、初始化
string s1;——默认构造函数s1为空串
string s2(s1);——将s2初始化为与s1相同
string s3("aaa");——将s3初始化为aaa
string s4(3, 'b');——将s4初始化为bbb
2、输入输出
能用cin,cout;不能用scanf,printf。
用cin读入会忽略开头所有空白字符(如空格,换行符,制表符),读取字符直至再次遇到空白字符。
用getline能整行读入(不会忽略前驱空格),读入得到的字符串末尾没有换行符。
3、普通运算符
s[n],s1 + s2,s1 = s2,s1 == s2,!=, <, <=, >, >=均保持它们惯有的含义
4、insert插入
s1.insert(迭代器, 单个字符);——如s1.insert(s1.begin(), 's');
5、erase删除
s1.erase(数字a, 数字b);——删除s1[a]开始,删除b个
s1.erase(迭代器)——删除迭代器指示的那个元素
s1.erase(迭代器a, 迭代器b)——删除迭代器a到迭代器b之间的所有元素,删除迭代器a指示元素,不删b
6、clear清空
7、repalce替换
与erase的一三个用法相似,不过没有第二个用法
8、empty字符串为空返回真,否则返回假
9、substr函数,截取string中的一段。s = s.substr(a, b)则为将s变成自己的从第a位开始,长度为b的子串。(从第0位开始)比如s = "12345",s = s.substr(1, 3),则s = "234"。
测试程序部分为(测试过程中不小心删掉了部分- -)
/*
* Author: Plumrain
* Created Time: 2013-09-05 15:53
* File Name: string.cpp
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string> using namespace std; #define out(x) cout<<#x<<":"<<(x)<<endl
#define tst(a) cout<<#a<<endl void test_1()
{
string s1;
out (s1);
s1 = "aaa";
string s2(s1);
out (s2);
string s3("bbb");
out (s3);
string s4(, 'c');
out (s4);
} void test_2()
{
string s1;
cin >> s1;
cout << s1 << endl;
getline(cin, s1);
cout << s1 << endl;
} void test_3()
{
string s1 = "ccc";
string s2 = "aaaaaaaa";
s2 = s1;
out (s2);
out (s2.size());
out (s1);
out (s1.size());
} void test_insert()
{
string s1 = "aaaaa";
s1.insert (s1.begin(), 's');
s1.insert (s1.end(), 's');
s1.insert (s1.begin() + (s1.end()-s1.begin()) / , );
out (s1);
} void test_erase()
{
string s1 = "abcdefghi";
// s1.erase(2, 3);
s1.erase(s1.begin(), s1.end());
out (s1.size());
out (s1);
} void test_replace()
{
string s = "abcdefghi";
s.replace(, , "rr");
s.replace(s.begin(), s.end()-, "rrr");
// s.replace(s.begin(), "rrr");
out (s);
} int main()
{
test_1 ();
test_2 ();
test_3 ();
test_insert ();
test_erase ();
test_replace ();
return ;
}
View Test Code
C++ STL之string常用指令的更多相关文章
- C++ STL之map常用指令
只记载本人在ACM中常用的函数. map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力. map内部为一颗 ...
- 【STL】string 常用函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- C++ STL之pair常用指令
只记载本人在ACM中常用的函数. pair<first, second>,将两个数据组合成一个数据.在其他stl(如map),函数需要传回两个值时可能会用到. 1.初始化 #include ...
- C++ STL之vector常用指令
只记载本人在ACM中常用的函数. vector,相当于动态数组,数组大小可变.声明vector以后,自动在内存中分配一块连续的内存空间进行数据存储. vector在内部进行插入.删除操作时间复杂度O( ...
- C++ STL之set常用指令
set,关联容器,元素不允许有重复,数据被组织成一棵红黑树,以牺牲插入和删除元素的效率换来了查找元素的高效率(O(logN)). 1.初始化 set<int> st; 2.begin返回第 ...
- Redis常用指令之string、list、set、zset、hash
Redis之五大类型常用指令 redis的一些小知识 redis服务器端口默认是6379 在编译完成后的bin目录下启动服务端:redis-server 客户端连接操作:redis-cli -h lo ...
- 7. Buffer_包描述文件_npm常用指令_fs文件读写_模块化require的规则
1. Buffer 一个和数组类似的对象,不同是 Buffer 是专门用来保存二进制数据的. 特点: 大小固定: 在创建时就确定了,且无法调整 性能较好: 直接对计算机的内存进行操作 每个元素大小为1 ...
- Linux常用指令【转载】
[收藏]Linux常用指令[转载] $ 命令行提示符 粗体表示命令 斜体表示参数 filename, file1, file2 都是文件名.有时文件名有后缀,比如file.zip command 命令 ...
- (转)Linux最常用指令及快捷键 Linux学习笔记
Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...
随机推荐
- Python文件操作方法
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有 ...
- html5 高清屏幕图片处理
1. srcset 语法:在元素上添加srcset属性.srcset的值是一个用逗号分隔的列表.列表中的每个项包含一张图片的路径并且按倍数(例如,1x,2x,3x...)提供多张分辨率的图片 参考:h ...
- WebService笔记-Schema约束
Schema约束 俗话说得好 好记性不如烂笔头. 看了下WebService视频,觉得还是得下笔记. 观看的视频地址:http://edu.51cto.com/ ...
- angularJS中如何写服务
服务的用途 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性 服务提供了把特定功能相关联的方法集中在一起的接口 如何创建服务 angularJS ...
- windows下Django 部署到Apache24的配置
1.首先下载最新版Apachehttp://httpd.apache.org/download.cgi#apache24,目前官方以不提供windows msi安装包,下载好的直接解压至C盘即可,ap ...
- Can't connect to local MySQL server through socket
今天上午在测试代码的时候发现在执行写mysql的时候总是超时,然后失败,使用mysql命令 show processlist; 发现有两条update的sql语句已经执行了很长时间,以为是这两个程序把 ...
- DNS解析原理
1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则 ...
- net Core 使用MyCat分布式数据库,实现读写分离
net Core 使用MyCat分布式数据库,实现读写分离 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题, ...
- 在vs中连接sql的几种连接方式
sql身份验证:Data Source=.;Initial Catalog=DBName;UID=sa;Pwd=pwd windows身份验证:Data Source=.;Initial Catal ...
- 转:php页面静态化之真静态
之前的缓存和现在所说的页面静态化都是为网站提速的,如果是访问量小的小型网站可能不需要但是如果网站规模或访问量很大,那么页面静态化和缓存就会体现出各自的价值了下面先来了解下页面静态化的分类 页面静态化的 ...