【第22期】观点:IT 行业加班,到底有没有价值?

C++String使用笔记【自用】

原创 2017年01月03日 16:18:26

头文件–必须加

#include<string>

长度

s.length();//字符串中字符个数
s.size();//同上
s.capacity()//表示当前string的容量,即开辟内存的大小

读写

string str;//定义后,为长度为0的空串
cin >> str;//空格即结束
cout << str;

赋值

string s1,s2;
s1 = "hello world";
s2 = s1;
cout << s1 << endl;
cout << s2 << endl;//输出hello world

连接

//使用+ 和 +=
string s1 = "Atlas ",s2 = "King",s3;
s3 = s1 + s2;
s1 += s2;
cout << s1 << endl;
cout << s3 << end;      //均输出Atlas King

修改

erase(4,7);     //第一个数为要删除子串的开始位置,后一个数为长度

*注:是对自身进行操作

插入

s.insert(4,s2);     //第一个参数为插入位置,第二参数给出要插入的字符串

注:1.修改自身;2.第二个字符串也可以是C风格的字符数组

替换

s.replace(4,6,s2); //1为开始为位置,2为长度,3为要替代的字符串

交换

string s1 = "I";
string s2 = "You";
s1.swap(s2);
cout << s1 << endl; //输出You
cout << s2 << endl;//输出 I

提取子串

s.substr(4,6);
//1为开始为位置,2为子串长度。若长度超出,则直接取原字符串从开始位置后的全部即可

查找

int number= s.find(s2,ind);  //返回首字母的序号【未找到,返回-1】
//查找从位置ind之后【包括ins】的部分中,子串s2的位置。若ind缺省,则默认为零,即在整个串中查找

字符串比较

if(s1 == s2)  //区分大小写
if(s1 < s2)
if(s1 != s2)

大小写转换
【3.std::string 转换大小写】
很遗憾,std::string 没有提供大小写转换的功能,所以只能用STL中的transform结合toupper/tolower完成。
头文件: string, cctype,algorithm
转小写

//转小写
transform(str.begin(),str.end(),str.begin(),tolower);
transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);
//转大写
transform(s.begin(), s.end(), s.begin(), toupper);
transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);

Example:
    wstring wstr =L"Abc";
    transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);

排序函数sort()
https://zhidao.baidu.com/question/216527176.html

逆置

char str[]="abcdefgh";//【变成"abgfedch"】
reverse(str+2,str+7);//对字符串数组
string s=str;
reverse(s.begin()+2,s.begin()+7);//对string
//reverse(s.begin()+2,s.end()-1);//和上面一句效果一样

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

C++ Primer学习笔记(2)—字符串string类的使用

学过一点C语言的人都知道,字符串操作是不可避免的,但C语言中字符串操作起来比较麻烦,比如两个字符串比较、连接、对串中某个字符进行操作等,需要调用相应地函数。而C++中,由于类概念的引入,在string...

我的Android进阶之旅------>经典的大客推荐(排名不分先后)!!

今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) <p style="margin-top: 0px; margin-bottom: 0px; padding...
  • ydbc
  • ydbc
  • 2013-09-07 23:18
  • 3384

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

C/C++ 学习笔记:C++ 中 string 类使用总结

C++中的string类使用总结:构造函数、字符操作、特性描述、输入输出操作,string的赋值、连接、子串、比较、交换、查找、替换、插入、删除、迭代器、流处理等

笔记(自用)

[color=darkred]poi创建excel流程[/color]: 创建webbook(对应excel),创建sheet(工作簿),创建表头,填充数据,保存excel文件 [color=darkred]java堆和栈:[/color] 堆是一个动态的数据区,类的对象从中分配空...

JavaEye博客备份脚本订制版

今天[url=http://robbin.iteye.com/]Robbin[/url]在[url=http://www.iteye.com/wiki/JavaEye/2104]如何批量导出JavaEye的博客做备份?[/url]提供了一份Ruby写的备份JavaEye博客文章的脚本。原理如原帖所述...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)