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常用指令的更多相关文章

  1. C++ STL之map常用指令

    只记载本人在ACM中常用的函数. map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力. map内部为一颗 ...

  2. 【STL】string 常用函数

    string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...

  3. C++ STL之pair常用指令

    只记载本人在ACM中常用的函数. pair<first, second>,将两个数据组合成一个数据.在其他stl(如map),函数需要传回两个值时可能会用到. 1.初始化 #include ...

  4. C++ STL之vector常用指令

    只记载本人在ACM中常用的函数. vector,相当于动态数组,数组大小可变.声明vector以后,自动在内存中分配一块连续的内存空间进行数据存储. vector在内部进行插入.删除操作时间复杂度O( ...

  5. C++ STL之set常用指令

    set,关联容器,元素不允许有重复,数据被组织成一棵红黑树,以牺牲插入和删除元素的效率换来了查找元素的高效率(O(logN)). 1.初始化 set<int> st; 2.begin返回第 ...

  6. Redis常用指令之string、list、set、zset、hash

    Redis之五大类型常用指令 redis的一些小知识 redis服务器端口默认是6379 在编译完成后的bin目录下启动服务端:redis-server 客户端连接操作:redis-cli -h lo ...

  7. 7. Buffer_包描述文件_npm常用指令_fs文件读写_模块化require的规则

    1. Buffer 一个和数组类似的对象,不同是 Buffer 是专门用来保存二进制数据的. 特点: 大小固定: 在创建时就确定了,且无法调整 性能较好: 直接对计算机的内存进行操作 每个元素大小为1 ...

  8. Linux常用指令【转载】

    [收藏]Linux常用指令[转载] $ 命令行提示符 粗体表示命令 斜体表示参数 filename, file1, file2 都是文件名.有时文件名有后缀,比如file.zip command 命令 ...

  9. (转)Linux最常用指令及快捷键 Linux学习笔记

    Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...

随机推荐

  1. iOS图片拉伸

    常用的图片拉伸场景有:聊天页面的气泡,需要根据内容拉伸,但圆角拉伸后会变形,为避免圆角拉伸,可以指定拉伸区域.UIImage实体调用以下方法即可指定拉伸区域. - (UIImage *)stretch ...

  2. 虚拟器运行iOS8地图提示错误

    /SourceCache/ProtocolBuffer_Sim/ProtocolBuffer-225/Runtime/PBRequester.m:799 server (https://gsp13-c ...

  3. CSS 布局Float 【1】

    1.HTML元素分类 HTML元素大题可分为内联(inline)元素和块(block)元素. 1.1 内联元素(inline) ①元素显示方式:"文本方式",1个挨着1个,不独自占 ...

  4. Ext Sencha Cmd 6 环境安装

    Sencha Cmd安装笔记 在使用前端框架ExtJs前,需对其环境加以部署,对自己的安装过程加以记录. 建议大家在安装时,最好使用VPN,个中缘由,生在跳槽的程序袁应该都懂吧.不然ruby相关命令执 ...

  5. Visual Studio 2010 单元测试目录

    单元测试的重要性这里我就不多说了,以前大家一直使用NUnit来进行单元测试,其实早在Visual Studio 2005里面,微软就已经集成了一个叫Test的专门测试插件,经过几年的发展,这个工具现在 ...

  6. gdb调试 使用心得

    1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的.   需要像以下这样使用:    #gdb app    (gdb) r -p1 -p ...

  7. Html5 Canvas学习

    canvas: 首先在html页面中加入canvas标签 <canvas id="canvas" width="1024" height="74 ...

  8. Yii2的相关学习记录,后台模板和gii(三)

    前面已经可以正常登录,但我们需要体验下最常用的增删查改的操作.这里就需要gii,通过gii可以方便的生成表单.表格的框架,不需要我们再写重复的东西. gii访问地址:http://localhost/ ...

  9. js join()函数将数组转换成字符串

    join() 方法用于把数组中的所有元素放入一个字符串.作用是将数组转换为字符串,其作用和toString()相同. 元素是通过指定的分隔符进行分隔的. 例如: var asp=['H','ell', ...

  10. 修改本地数据库root权限密码

    方法1: 用SET PASSWORD命令 测试成功 首先登录MySQL @1——mysql DOS 窗口中. 格式:mysql> set password for 用户名@localhost = ...