C++ string类的使用
C++ string的使用
在了解如何使用string类之前,我们先来看看C语言中使用字符串有多麻烦:
调用头文件:cstring
定义一个C字符串:
char str1[51]="Hello World";
char str2[51]="你好,世界";
printf("%s \n %s",&str1,&str2);
判断两个字符串是否相等:
if(strcmp(str1,str2))
//do sth.
后续赋值:
strcpy(str1,str2);
现在来看看string是如何使用的:
string类的成员函数:
名称 | 功能 |
---|---|
构造函数 | 初始化字符串 |
析构函数 | 销毁字符串 |
= | 赋值 |
+,+ =,append( ),push_back() | 拼接字符串 |
insert () | 插入字符 |
erase() | 删除字符 |
clear() | 移除全部字符(相当于="") |
resize() | 改变字符数量 |
replace() | 替换字符 |
!=,==,<,<= ,>=,> | 比较字符串 |
c_str() | 将内容以 C - string 形式返回 |
substr() | 返回子字符串 |
size(),length() | 返回字符串长度 |
find() | 搜寻某子字符串或字符 |
begin( ),end() | 提供正向迭代器支持 |
rbegin(),rend() | 提供逆向迭代器支持 |
[],at() | 返回某个位置的字符 |
调用头文件:string
string str1;//初始化字符串,空字符串
string str2 = str1; //拷贝初始化,其内容等于s1
string str3 = "I am b"; //直接初始化
string str4(10, 'a'); //s4存的字符串是aaaaaaaaaa
string str5(str4); //拷贝初始化
string str6("I am d"); //直接初始化
string str7 = string(6, 'c'); //拷贝初始化,cccccc
string的操作:
string str8=str3+str4; //将s3与s4拼接,储存在s8内
string str9="the str9: ";
str9+=str6; //直接拼接
cout << str9.size() << endl; //输出s9的长度
cout << str9[5] << endl; //输出s9的第5个字符
string str10;
getline(cin,str10); //读取一整行字符串至s10(即按下回车键才终止输入)
cout << str10 << endl; //输出刚才输入的字符串
string str11=str7.substr(0,3); //截取str7从0到3之间的字符串
cout << str11 << endl;
str11.insert(1,"bbb"); //将"bbb"插入到s11的第1个位置中
str11.erase(1,3); //删除s11的第1个位置之后的3个字符
cout << str11 << endl;
str11="123456789"; //对s11进行重新赋值
s11tr.replace(3-1,3,"kkk"); //替换s11的第3-1个位置之后的3个字符串为"kkk"
cout << str11;
显而易见,C++的string类比C的字符串定义好非常多。
最后补上一句:STL大法好!!!
C++ string类的使用的更多相关文章
- 标准库String类
下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...
- 自己实现简单的string类
1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...
- C++ string类的实现
c++中string类的实现 今天面试被考到了, 全给忘记了!!! //string类的实现 #include <iostream> #include <string.h> ...
- String类的功能
String类 标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...
- java基础复习:final,static,以及String类
2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...
- String类和StringBuffer类的区别
首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...
- 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...
- 标准C++中的string类的用法总结
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- String类常用方法
1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
随机推荐
- ACWing 238 银河英雄传说
最近带权并查集这块比较薄弱,直接看食物链看不懂,就老实一步步来了. 有一个划分为N列的星际战场,各列依次编号为1,2,…,N. 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列. 有T ...
- gap间隙锁
1.什么式gap锁 (1)在索引记录之间,或者在索引之前,或者索引之后的区间上加锁,就是gap锁.比如: SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR ...
- mybatis(五):源码分析 - config文件加载流程
详细的可以参考https://blog.csdn.net/weixin_33850890/article/details/88112849
- HTML的学习结构
HTML的学习结构 HTML的背景 HTML的创建 HTML的网页基本结构 HTML的基本标签 HTML的图像标签 HTML的链接标签 HTML的列表标签和表格标签 HTML的媒体元素(视频+音频) ...
- 如何面试QA(面试官角度)
面试是一对一 或者多对一的沟通,是和候选人 互相交换信息.平等的. 面试的目标是选择和雇佣最适合的人选.是为了完成组织目标.协助人力判断候选人是否合适空缺职位. 面试类型: (1)预判面试(查看简历后 ...
- eslint全局变量报错 xxx is not defined
找到.eslintrc.js,添加 "globals": { "你的全局变量": true }, 如果globals已经存在在里边加入你要忽略检测的全局变量即可 ...
- Allegro---层叠结构设置
PCB层叠结构 层叠结构是一个非常重要的问题,不可忽视,一般选择层叠结构考虑以下原则: ·元件面下面(第二层)为地平面,提供器件屏蔽层以及为顶层布线提供参考平面: ·所有信号层尽可能与地平面相邻: ...
- TP5和TP3.2的使用区别
模板标签不一样: TP5 可在配置文件中自行定义自己喜欢的标签 TP5 使用双标签 如:{foreach} {/foreach} TP3 : <> TP5 :{} 调用数据表方式: M( ...
- linux连接oracle数据
//切换到oracle用户模式下 su - oracle //登录sqlplus sqlplus /nolog //连接orcale conn xx/xx;(用户名/密码) 或者 connect / ...
- 注释web.xml
注释掉红框里的内容