[C++STL]string容器用法介绍

在这里插入图片描述

在这里插入图片描述
string构造函数
代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string s1;cout << "s1 = " << s1 << endl;const char *str = "hello world";string s2(str);cout << "s2 = " << s2 << endl;string s3(s2);cout << "s3 = " << s3 << endl;string s4(10, 'a');cout << "s4 = " << s4 << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:
string的多种构造方式没有可比性,灵活使用即可。

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str1;str1 = "hello world";cout << "str1 = " << str1 << endl;string str2;str2 = str1;cout << str2 << endl;string str3;str3 = 'a';cout << "str3 = " << str3 << endl;string str4;str4.assign("hello c++");cout << "str4 = " << str4 << endl;string str5;str5.assign("hello c++", 5);cout << "str5 = " << str5 << endl;string str6;str6.assign(str5);cout << "str6 = " << str6 << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:
string的赋值方式很多,operator= 这种方式是比较实用的。

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str1 = "我";str1 += "爱玩游戏";cout << "str1 = " << str1 << endl;str1 += ":";cout << "str1 = " << str1 << endl;string str2 = "LoL DNF";str1 += str2;cout << "str1 = " << str1 << endl;string str3 = "I";str3.append("Love");//str3.append(str2);str3.append("game abcde", 4);str3.append(str2, 4, 3);//从下标4位置开始,截取3个字符,拼接到字符串末尾cout << "str3 = " << str3 << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{//查找string str1 = "abcdefgde";int pos = str1.find("de");if (pos == -1){cout << "no find" << endl;}else cout << "pos = " << pos << endl;pos = str1.rfind("de");cout << "pos = " << pos << endl;}void test02()
{//替换string str1 = "abcdefgde";str1.replace(1, 3, "1111");cout << "str1 = " << str1 << endl;
}int main()
{test01();cout << "-----------------------------------"<<endl;test02();return 0;
}

测试结果:
在这里插入图片描述

总结:

在这里插入图片描述
在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string s1 = "hello";string s2 = "aello";int ret = s1.compare(s2);if (ret == 0){cout << "s1 = s2" << endl;}else if (ret > 0){cout << "s1 > s2" << endl;}else{cout << "s1 < s2" << endl;}}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:
字符串对比主要是用于比较两个字符串是否相等,判断谁大谁小的意义并不是很大。

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "hello world";for (int i = 0; i < str.size(); i++){cout << str[i] << " ";}cout << endl;for (int i = 0; i < str.size(); i++){cout << str.at(i) << " ";}cout << endl;//字符修改str[0] = 'x';str.at(1) = 'x';cout << str << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:
string字符串中单个字符存取有两种方式,利用[]或at

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "hello";str.insert(1, "111");cout << str << endl;str.erase(1, 3);cout << str << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:
插入和删除的起始下标都是从0开始

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "abcdefg";string subStr = str.substr(1, 3);cout << "subStr = " << subStr << endl;string email = "hello@sina.com";int pos = email.find("@");string username = email.substr(0, pos);cout << "username = " << username << endl;
}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LightOJ-1220 Mysterious Bacteria (素数打表+欧几里得算法+唯一分解定理)给出x,求x=a^p,最大的指数

题目大意&#xff1a; x b^p, x只有一个因子的p次幂构成 如果24 2^3*3^1&#xff0c;p应该是gcd(3, 1) 1,即24 24^1 324 3^4*2^2(3^2*2)^2,p应该是gcd(4, 2) 2,即324 18^2 所以p gcd(x1, x2, x3, ... , xn){欧几里得算法求取最大公约数}; *本题有一个坑&#xff0c;就…

致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序

“简单就是美”“平凡即是伟大”上面两句话不知道是哪位名人说的&#xff0c;又或者是广大劳动人民总结的&#xff0c;反正我很小的时候就常常听到这两句话&#xff0c;这两句话也成了我的人生格言&#xff0c;而且事实上我也是一个生活过得比较简单的平凡人物&#xff0c;当然…

[C++STL]vector容器用法介绍

代码如下&#xff1a; #include <iostream> #include <string> #include <vector> using namespace std;void printVector(vector<int >&v) {for (vector<int>::iterator it v.begin(); it ! v.end(); it){cout << *it << &qu…

跟沈剑学习如何带领技术团队作战

【学习笔记】| 作者/Edison Zhou这是恰童鞋骚年的第229篇原创文章小编Edison在阿里云开发者社区上看到了58集团技术VP大佬沈剑关于如何带领技术团队作战的一个直播分享&#xff0c;因此在站地铁的上下班路上学习完了整个录播视频&#xff0c;整理总结下此文作为学习笔记&#x…

拓展欧几里得小结(初级理解)

什么是拓展欧几里得&#xff1f;简单的说&#xff0c;就是求关于x,y的方程 ax by gcd(a,b) 的所有整数解 现在我们令g gcd(a,b)则方程变成了ax by g 假如我们现在知道了关于这个方程的一个特解x0, y0&#xff0c;我们就可以用一种方法求出所有的整数解。 说的比较模糊&am…

用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化

/*时间&#xff1a;2012-10-05作者&#xff1a;烟大阳仔程序要求&#xff1a;模拟彩票抽奖机的功能编写一个程序,实现随即输出六个号码程序解释&#xff1a;该段程序没有传递参数*/class Day1005_Caipiao{public static void main(String[] args){System.out.println("估计…

[C++STL]deque容器用法介绍

代码如下&#xff1a; #include <iostream> #include <string> #include <deque> using namespace std;void printDeque(const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it){cout << *it <…

“我工作八年,换了四家小公司,今后的职业生涯该怎么走?”

去年&#xff0c;我曾在GIAC大会上分享过一个有关程序员职场变化和转型的话题。在分享结束之后&#xff0c;有一位小伙伴拦在大门口&#xff0c;问了我一个问题&#xff1a;"王老师&#xff0c;虽然你分享的内容很务实&#xff0c;落地性也很强&#xff0c;但我觉得跟自己…

最长回文 HDU - 3068(求最长回文串的长度【马拉车算法Manacher】)

马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法&#xff0c;由一个叫 Manacher 的人在 1975 年发明的&#xff0c;这个方法的最大贡献是在于将时间复杂度提升到了线性 dp[i] ma > i ? min(dp[2 * mod - i], ma - i) : 1; 可以这么说&…

java中的循环结构_Java中的循环结构进阶

循环结构进阶学习本章用到的单词triangle:三角形circle:圆形diamond:钻石password:密码row:行.排列二重循环结构简单的说:二重循环就是一个循环体内又包含另一个完整的循环结构.while循环结构,do-while循环结构,for循环结构三种循环结是可以相互嵌套的语法://while与while循环嵌…

.NET Core + Kubernetes:Deployment

在上篇文章 .NET Core Kubernetes&#xff1a;Pod 中&#xff0c;主要介绍了 Pod 的相关内容&#xff0c; 基于 Pod 为单位能更加合理进行容器编排&#xff0c;然而 Pod 只是个启动了一个或一组容器的资源类型&#xff0c;在实际应用中&#xff0c;我们也需要 Pod 能实现动态扩…

java dos平台压缩_Dos命令 压缩 解压缩

你的机器 有RAR吗> 装个rar里面有个Rar.exe文件用法: rar - - a 添加文件到压缩文件c 添加压缩文件注释cf 添加文件注释cw 写入压缩文件注释…

Oulipo HDU - 1686(哈希或KMP)匹配字符串

题意&#xff1a;字符串匹配&#xff1a;寻找字符串S中&#xff0c;字符串T出现的次数 思路&#xff1a;KMP或哈希 The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter e. He was a member of the Oulipo group. A quote …

我整理了100G的.Net学习资料,速来领取!

听说免费送课会上瘾&#xff1f;不分享点干货给大家学习&#xff0c;完全无法衬托本号主的好人特质啊&#xff01;正所谓白嫖一时爽&#xff0c;一直白嫖一直爽&#xff01;举起你滴双手&#xff0c;擦亮你的眼睛&#xff01;今天我要丢个硬核干货&#xff01;一次性怒砸几百个…

maven mysql的jdbctemplate_JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析

JDBC (Java Data Base Connection,java数据库连接)JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发…

[C++STL]list容器用法介绍

代码如下: #include <iostream> #include <string> #include <list> using namespace std;void printList(const list<int>&L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout << *it << " &quo…

C#黔驴技巧之去重(Distinct)

关于C#中默认的Distinct方法在什么情况下才能去重&#xff0c;这个就不用我再多讲&#xff0c;针对集合对象去重默认实现将不再满足&#xff0c;于是乎我们需要自定义实现来解决这个问题&#xff0c;接下来我们详细讲解几种常见去重方案&#xff0c;孰好孰歹自行判之。分组首先…

Almost Union-Find UVA - 11987(并查集的删除操作)

题意&#xff1a;求出每个集合的元素个数&#xff0c;及总和&#xff0c;给出三个操作&#xff1a; 1 将含有a元素和b元素的集合合并&#xff1b;2 将a元素放入含有b元素的集合中&#xff1b;3 输出a元素所在集合的元素个数及总和&#xff1b; 思路&#xff1a;正常并查集&am…