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 [摘自 鸟叔的私房菜]--转 ...
随机推荐
- 从今天开始学习C#啦
此博客为证,在下从今天开始学习C#,并把心得体会记录下来.
- OD: RPC - MS06040 & MS08067
RPC 漏洞简介 Remote Procedure Call,分布式计算中常用到的技术.两台计算机通信过程可以分为两种形式:一种是数据的交换,另一种是进程间通信.RPC 属于进程间通信. RPC 就是 ...
- 判断在Android手机内, 页面重新刷新一次
<script type="text/javascript"> var UA = navigator.userAgent.toLowerCase(); //androi ...
- Linq101-CustomSequence
using System; using System.Collections.Generic; using System.Linq; namespace Linq101 { class CustomS ...
- SQL 里面的COALESCE函数
在SQL里面除了is null 还有这样一个还用的方法 COALESCE(值[, ...]) select COALESCE(NULL,NULL,'AAAA') -> 'AAAA' 意思是前面的 ...
- 解决第三方DLL没有强签名
-----转载:http://blog.csdn.net/zyming0815/article/details/5939090 创建一个新的随机密钥对:sn -k myTest.snk 第一步: 将D ...
- for update被锁定解锁
查找被锁定的表,用户,session:SELECT object_name, machine, s.sid, s.serial#FROM gv$locked_object l, dba_object ...
- IOS中截屏的实现,很简易的方法
// 添加QuartzCore.framework库 #import <QuartzCore/QuartzCore.h> -(void) screenShot { // 截屏 UIGrap ...
- cache—主存—辅存三级调度模拟
近日,在体系结构的课程中,老师留了一个上机作业,为cache—主存—辅存三级调度模拟,要求如下: 实现三级存储体系的模拟调度程序 描述:CPU在cache访问数据块,若命中给出对应的cache实地址, ...
- Google Calendar(日历)设置农历生日提醒
Generate birthday dates base on lunar birthdays for google calendar import Can be used for notifying ...