参考自:http://blog.csdn.net/y990041769/article/details/8763366

1:string对象的定义和初始化以及读写

string s1;      默认构造函数,s1为空串

string s2(s1);   将s2初始化为s1的一个副本

string s3("valuee");   将s3初始化一个字符串面值副本

string s4(n,'c');   将s4 初始化为字符'c'的n个副本

cin>>s5;  读取有效字符到遇到空格

getline(cin,s6);  读取字符到遇到换行,空格可读入,知道‘\n’结束(练习在下一个代码中),

getline(cin,s7,'a'); 一个直到‘a’结束,其中任何字符包括'\n'都能够读入,可以试试题:UVa10361

2:string对象操作

s.empty()  判断是否为空,bool型

s.size() 或 s.length() 返回字符的个数

s[n]  返回位置为n的字符,从0开始计数

s1+s2 连接,看下面例子:

可用此方法给字符串后面添加字符如:s=s+'a';

a:  string s2=s1+", ";  //对,把一个string对象和一个字符面值连接起来是允许的

b:  string s4="hello "+", ";   //错,不能将两个字符串面值相加

c:  string s5=s1+", "+"world";   //对,前面两个相加相当于一个string对象;

d:  string s6="hello" + ", " +  s2;  //错

(注:字符串尾部追加还可用s.append("abc")函数添加)

s1=s2  替换

s1==s2  相等,返回true或false

!=,<,<=,>,>=  字符串比较,两个字符串短的与长的前面匹配,短的小于长的

3:string对象中字符的处理(头文件cctype)

isalnum(c)  如果c是字母或数字,返回 true

isalpha(c)  如果c是字母,返回true

iscntrl(c)  c是控制符,返回true

isdigit(c)  如果c是数字,返回true

isgraph(c)  如果c不是空格,则可打印,,则为true

islower(c)  如果c是小写字母,则为true

isupper(c)  如果c是大写字符,则为true

isprint(c)  如果c是可打印的字符,则为true

ispunct(c)  如果c是标点符号,则为true

isspace(c) 如果c是空白字符,则为true

isxdigit(c) 如果c是十六进制数,则为true

tolower(c) 如果c是大写字符,则返回其小写字母,否则直接返回c

toupper(c)  跟tolower相反

4:string对象中一些函数

/*-------------------------插入函数----------------------------------包括迭代器操作和下标操作,下标操作更灵活*/

s.insert( it , p );  把字符串p插入到it的位置

s.insert(p,n,t);   迭代器p元素之前插入n个t的副本

s.insert(p,b,e);      迭代器p元素之前插入迭代器b到e之间的所有元素

s.insert(p,s2,poe2,len); 在下标p之前插入s2下标从poe2开始长度为len的元素

s.insert(pos,cp,len);  下标pos之前插入cp数组的前len个元素。

/*-----------------------替换函数-------------------------------*/

s.assign(b,e);  用迭代器b到e范围内的元素替换s

s.assign(n,t);  用n个t的副本替换s

a.assign(s1,pos2,len);从s1的下标pos2开始连续替换len个。

s.replace ( 3 , 3 , " good " ) ;   从第三个起连续三个替换为good

s.substr(i,j)   截取s串中从i到j的子串  //string::npos  判断字符串是否结束

/*-----------------------删除函数-----------------------------*/

s.erase( 3 )||s.erase ( 0 , 4 ) ;  删除第四个元素或第一到第五个元素

/*----------------------其他函数-----------------------------*/

s.find ( " cat " ) ;  超找第一个出现的字符串”cat“,返回其下标值,查不到返回 4294967295,也可查找字符;

s.append(args); 将args接到s的后面

s.compare ( " good " ) ;  s与”good“比较相等返回0,比"good"大返回1,小则返回-1;

reverse ( s.begin(), s.end () );  反向排序函数,即字符串反转函数

题目:

hdu_2017

  isdigit(c);  //若是数字,返回true

hdu_1062

getline(cin,a);  //读入一行到a

a.find(" ");  //在a中找" ",也可找字符串或者字符,若找不到返回a.npos(4294967295)

a.substr(i,j);  //截取a中从i到j的子串(包括i不包括j)

a.substr(i);  //截取a中从i到末尾的子串

reverse(a.begin(),a.end());  //反转a

hdu_1113

  string a;

  sort(a.begin(),a.end());  //sort可以给string排序

STL_string用法总结的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

随机推荐

  1. ScrollView双击图片定点放大

    直接先说原理吧--原理:利用了scrollview的回调函数(如下)以及scrollview自己内部的一些缩放规则(其实我也还没弄清楚具体scrollview干了什么事),只是知道了它可以怎么做-_- ...

  2. lua中的metatable和metamethod

    --元表和元方法给lua里的值设定一些操作,让我们可以对这些操作自定义 --创建一个新的table变量时,它是不存在元表的 --在Lua中,只能设置table的元表,其他类型的值的元表,只能通过C代码 ...

  3. java的异常(Exception)信息的详细记录

    下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆载的风格 方法一: public static String getExceptionAllinformation( ...

  4. Caffe——清晰高效的深度学习(Deep Learning)框架

    Caffe(http://caffe.berkeleyvision.org/)是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清(http://daggerfs.com/ ...

  5. POJ 1861 Network (Kruskal求MST模板题)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14103   Accepted: 5528   Specia ...

  6. 用C++实现一个Quaternion类

    提要 四元素是游戏开发中经常使用的用于处理旋转的数学工具,以下就用C++来实现一个四元素类.參考Unity中四元素的接口. 假设没有看之前的 彻底搞懂四元数. 建议先看一下. 代码清单 Quatern ...

  7. Zookeeper01

    ZooKeeper数据模型Znode

  8. YTU 2795: 编程题AB-侦察员的密码

    2795: 编程题AB-侦察员的密码 时间限制: 1 Sec  内存限制: 128 MB 提交: 155  解决: 43 题目描述 侦察员小甲在被捕前在墙上写了两行文字(ASCII字符),其中包含了他 ...

  9. YTU 2706: 编写一个函数求最大的n值

    2706: 编写一个函数求最大的n 值. 时间限制: 1 Sec  内存限制: 128 MB 提交: 341  解决: 132 题目描述 编写一个函数求满足以下条件的最大的n.:12+22+32+-+ ...

  10. 杂项-java:ElasticSearch

    ylbtech-杂项-Java:ElasticSearch 1.返回顶部 1. ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTf ...