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);//和上面一句效果一样

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

TOMCAT使用SSL(https)

Setting Up SSL on Tomcat in 5 minutes (https://localhost:8443) June 30, 2011 | By Loiane This tut...
  • sqzhao
  • sqzhao
  • 2014年12月09日 20:30
  • 756

关于iOS的App上线,纯自用,mark

众所周知,苹果的APP都是人工审核的,只一点比安卓的好,安卓的一些软件上传到第三方之后估计压根就没人测试,下载了之后直接闪退或者美观性很差劲,更不要说用户体验了,那么,苹果的APP怎么一步步的上传到应...
  • X_codeWKH
  • X_codeWKH
  • 2016年04月26日 18:14
  • 682

自用数据库软件(3-1功能设计)

程序员在项目开发过程中对数据的操作,除了查看日志和记录数据变化的页面外,很多时候用sql语句查看对应数据的变化。大型项目也会用单体测试和自动化集成测试来验证版本的更新和修改。但在中小企业和小型项目中,...
  • soars
  • soars
  • 2013年02月22日 23:15
  • 320

Android 支付宝支付

在现在移动支付越来越火的背景下,支付宝支付的开发越来越常见,现在就由我来说一下具体流程吧首先你需要先登录支付宝开发者平台http://open.alipay.com/platform/home.htm...
  • sky1466181491
  • sky1466181491
  • 2016年01月24日 11:46
  • 468

【干货】重度Chrome控推荐自用插件

我用Chrome已经很多年了,有很多人说Chrome占了很多内存,我觉得是没有利用好Chrome插件。如今,Chrome已经成为我工作、学习中不可或缺的部分。接下来,给大家介绍一下我在Chrome中装...
  • chWow
  • chWow
  • 2017年07月17日 10:47
  • 996

自用笔记

"Jay" Kantell wrote: > Thanks. However with 2.2.12 I only got as far as: > > checking for remove...
  • xinhero123
  • xinhero123
  • 2012年06月14日 16:55
  • 196

C++string使用

C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对string一些总...
  • u010893262
  • u010893262
  • 2017年09月07日 11:41
  • 185

自用笔记本电脑搭建自己的网站

自从学了编程之后,就一直想搭建一个自己的网站,当初还是小白的时候就一直有个疑问,我写的网站如何放到网上让别人都能访问到哪?路漫漫其修远兮,吾将上下而求索。终于让我走出了这团疑云,成功的那一刻是兴奋且激...
  • javaStudentZhang
  • javaStudentZhang
  • 2018年01月06日 16:08
  • 101

JVM 调优 - 命令篇

运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer...
  • hua00shao
  • hua00shao
  • 2017年10月17日 10:47
  • 118

自用DBClass SQLServer数据库操作类

using System;using System.Data;using System.Data.SqlClient;using System.Collections.Generic;using ...
  • freeliver54
  • freeliver54
  • 2008年03月13日 10:56
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++String使用笔记【自用】
举报原因:
原因补充:

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