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类的使用的更多相关文章

  1. 标准库String类

    下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...

  2. 自己实现简单的string类

    1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...

  3. C++ string类的实现

    c++中string类的实现 今天面试被考到了, 全给忘记了!!!   //string类的实现 #include <iostream> #include <string.h> ...

  4. String类的功能

    String类              标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...

  5. java基础复习:final,static,以及String类

    2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...

  6. String类和StringBuffer类的区别

    首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...

  7. 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

    Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...

  8. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  9. String类常用方法

    1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...

  10. 运用String类实现一个模拟用户登录程序

    package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...

随机推荐

  1. ACWing 238 银河英雄传说

    最近带权并查集这块比较薄弱,直接看食物链看不懂,就老实一步步来了. 有一个划分为N列的星际战场,各列依次编号为1,2,…,N. 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列. 有T ...

  2. gap间隙锁

    1.什么式gap锁 (1)在索引记录之间,或者在索引之前,或者索引之后的区间上加锁,就是gap锁.比如: SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR ...

  3. mybatis(五):源码分析 - config文件加载流程

    详细的可以参考https://blog.csdn.net/weixin_33850890/article/details/88112849

  4. HTML的学习结构

    HTML的学习结构 HTML的背景 HTML的创建 HTML的网页基本结构 HTML的基本标签 HTML的图像标签 HTML的链接标签 HTML的列表标签和表格标签 HTML的媒体元素(视频+音频) ...

  5. 如何面试QA(面试官角度)

    面试是一对一 或者多对一的沟通,是和候选人 互相交换信息.平等的. 面试的目标是选择和雇佣最适合的人选.是为了完成组织目标.协助人力判断候选人是否合适空缺职位. 面试类型: (1)预判面试(查看简历后 ...

  6. eslint全局变量报错 xxx is not defined

    找到.eslintrc.js,添加 "globals": { "你的全局变量": true }, 如果globals已经存在在里边加入你要忽略检测的全局变量即可 ...

  7. Allegro---层叠结构设置

     PCB层叠结构 层叠结构是一个非常重要的问题,不可忽视,一般选择层叠结构考虑以下原则: ·元件面下面(第二层)为地平面,提供器件屏蔽层以及为顶层布线提供参考平面: ·所有信号层尽可能与地平面相邻: ...

  8. TP5和TP3.2的使用区别

    模板标签不一样: TP5 可在配置文件中自行定义自己喜欢的标签 TP5  使用双标签 如:{foreach} {/foreach} TP3 : <> TP5 :{} 调用数据表方式: M( ...

  9. linux连接oracle数据

    //切换到oracle用户模式下 su - oracle //登录sqlplus sqlplus /nolog //连接orcale conn xx/xx;(用户名/密码)  或者 connect / ...

  10. 注释web.xml

    注释掉红框里的内容