| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> C++笔记——string容器介绍 -> 正文阅读 |
|
[系统运维]C++笔记——string容器介绍 |
目录 前提: 使用string容器要包含头文件 #include<string> 本质:
string和char*的区别:
一,string构造函数
? ? ? ? ?const char* str = "hello world"; ? ? ? ? ?string s2(str);??? //初始化 ? ? ? 2.string s3(s2);??? //使用一个string对象初始化另一个string对象 ? ? ? 3.string s4(5, 'a');???? //使用n个字符a初始化 ??????????????????????????? //string(int n,char c); 二,赋值操作
? ? ? ? ?s1 = "hello world";? //char*型字符串,赋值给当前字符串 ? ? ? 2. string s2 = s1;? //字符串s1,赋值给s2 ? ? ? 3. string s3; ? ? ? ? ? s3 = 'a';? //字符赋值给当前字符串 ? ? ? ?4. string s4; ? ? ? ? ? ?s4.assign("hello world");? //字符串s赋值给当前字符串 ? ? ? ?5. string s5; ? ? ? ? ? ?s5.assign("hello world", 5);? //把字符串s的前n个字符赋值给当前字符串 ? ? ? ?6. string s6; ? ? ? ? ? ?s6.assign(s5)? ;//把字符串s赋值给当前字符串 ? ? ? ?7. string s7; ? ? ? ? ? ?s7.assign(10, 'a');? //把n个字符c赋值给当前字符串 三,字符串拼接
? ? ? ? ?s1 += "一瓢C++"; ? ? ?2.? ? s1 += ';';? //追加一个字符 ? ? ?3.? ? string s2="lol我是"; ? ? ? ? ? ? s2 += s1; ? ? ?4.? ? string s3="i"; s3.append(" love "); ? ? ?5.? ? s3.append("gamesferg", 5);? //把字符串s的前n个字符拼接到当前字符串 ? ? ?6.? ? s3.append(s2); ? ? ?7.? ? s3.append(s2,0,3);?? //从第0个位置,截取三个字符 四,字符串查找与替换 1,查找 ? ? ?string s1 = "abcdefg"; ? ? ?int p1=s1.find("de"); ? ? ?/* 查找字符串在当前字符串的位置,默认是从第0个位置开始查找, ? ? ?find函数返回值是整形数据,若未找到,则返回-1 */ ? ? ? ? int p2 = s1.rfind("de"); ? ? ?/* find 和 rfind 都可实现查找功能,但区别是: ? ? ?find是从左往右查找,rfind是从右往左 */ 2,替换 ????? s1.replace(1, 3, "11111"); ? ? ?/* replace函数有三个参数,从第1个位置开始, ? ? ?3个字符替换为“11111”*/ 五,字符串比较 ????? string s1 = "hello"; ? ? ? string s2 = "hello"; ? ? ? int n = s1.compare(s2); ?比较方式:
两个字符串相等??????????????????????????? 返回? 0 第一个字符串大于第二个字符串??? 返回? 1 第一个字符串小于第二个字符串??? 返回? -1 六,字符存取 1,通过 [] 访问单个字符 ?????? string s1 = "hello"; ? ? ? for (int i = 0; i < s1.size(); i++) { ? ? ? ? ? ? ?cout << s1[i] << " "; ? ? ? } ? ? ? 修改字符 ? ? ? s1[0] = 'x'; 2,通过at方式访问单个字符 ????? for (int i = 0; i < s1.size(); i++) { ? ? ? ? ? ? cout << s1.at(i) << " "; ? ? ? } ? ? ? 修改字符 ? ? ? s1.at(0) = 'x'; 七,字符串插入和删除 1,,字符串插入 ?????? string s1 = "hello"; ?????? s1.insert(1, "111");? //从第一个位置插入字符串 2,字符串删除 ? ? ? ?s1.erase(1, 3);?? //从第一个位置删除3个字符 八,字串获取 功能描述:
? ? ? string s1 = "hello"; ? ? ? string s2 = s1.substr(1, 3); ? ? ? cout << s2; 使用操作——从邮箱地址中获取用户名信息 ????? string email = "zhangsan@qq.com"; ? ? ? int pos = email.find("@");??????????? //查找字符“@”的位置 ? ? ? string userName = email.substr(0, pos);???? //从第0个位置开始,获取pos个字符 ? ? ? cout << userName << endl; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:42:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |