续:string的用法

续:string的用法

  • 1、字符串插入
  • 2、c_str
  • 3、分隔后缀
  • 4、字符串转化为数值,或数值转化为字符串

1、字符串插入

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <assert.h>
using namespace std;void test_string8()
{//insert 尽量少用string str("wo lai le");//(1)在空格的位置插入 20%for (size_t i = 0; i < str.size(); ++i){if (' ' == str[i]){str.insert(i, "20%");i += 4;}else{++i;}}cout << str << endl;//(2)用 20% 替换空格// 先插入20%,再删除空格for (size_t i = 0; i < str.size(); ++i){if (' ' == str[i]){str.insert(i, "20%");i += 3;}}cout << str << endl;for (size_t i = 0; i < str.size(); ++i){if (' ' == str[i]){str.erase(i, 1);}}cout << str << endl;//用空间换时间string newstr;for (size_t i = 0; i < str.size(); ++i){if (str[i] != ' '){newstr += str[i];}else{newstr += "20%";}}cout << newstr << endl;}

2、c_str

void test_string9()
{//要求:用C的形式读文件  // c_str() 是为了兼容一些c语言的用法而使用的。string filename("test.cpp");cout << filename << endl;cout << filename.c_str() << endl;filename += '\0';filename += "string.cpp";cout << filename << endl; //string对象 终止的标准是 _size;cout << filename.c_str() << endl; //而常量字符串的 终止标准是 '\0'cout << filename.size() << endl;string copy = filename;cout << copy << endl;/*FILE* fout = fopen(filename.c_str(),"r");assert(fout);char ch = fgetc(fout);while (ch != EOF){cout << ch;ch = fgetc(fout);}*/
}

3、分隔后缀

void DealUrl(const string& url)
{size_t pos1 = url.find("://");if (pos1 == string::npos){cout << "非法url" << endl;return;}string protocol = url.substr(0, pos1);cout << protocol << endl; //打印 协议size_t pos2 = url.find('/', pos1 + 3);if (pos2 == string::npos){cout << "非法url" << endl;return;}string domain = url.substr(pos1 + 3, pos2 - pos1 - 3);cout << domain << endl; //打印 域名string uri = url.substr(pos2 + 1);cout << uri << endl; //打印 统一资源标识符}void test_string10()
{//string filename("test.cpp.tar.zip");后缀//size_t pos = filename.rfind('.');//if (pos != string::npos)//{//	//string suff = filename.substr(pos,filename.size()-pos);//	string suff = filename.substr(pos);//	cout << suff << endl;//}string url1 = "https://cplusplus.com/reference/string/string/";string url2 = "ftp://ftp.cs.umd.edu/pub/skipLists/skiplists.pdf";DealUrl(url1);cout << endl;DealUrl(url2);}

4、字符串转化为数值,或数值转化为字符串

void test_string12()
{int ival;double dval;cin >> ival >> dval;string istr = to_string(ival); //整型转化为字符串string dstr = to_string(dval);cout << istr << endl;cout << dstr << endl;istr = "9999";dstr = "9999.99";ival = stoi(istr); // 字符串转化为整型dval = stod(dstr);cout << ival << endl;cout << dval << endl;
}int main()
{test_string12();return 0;
}

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

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

相关文章

springBoot-rabbitMq手动确认消息

代码基础怎么写我就不说了&#xff0c;看我的另一篇博客 springBoot整合RabbitMQ&#xff08;Demo&#xff09;_我要用代码向我喜欢的女孩表白的博客-CSDN博客 假设你要手动ack&#xff0c;怎么做呢&#xff1f; 通常自动是&#xff0c;mq发给服务端&#xff0c;服务端收到了…

whisper 语音识别项目部署

1.安装anaconda软件 在如下网盘免费获取软件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1zOZCQOeiDhx6ebHh5zNasA 提取码&#xff1a;hfnd 2.使用conda命令创建python3.8环境 conda create -n whisper python3.83.进入whisper虚拟环境 conda activate whisper4.…

正则表达式应用

正则表达式应用 正则匹配以{开头&#xff0c;以}结尾 \{.*?\}正则匹配以[开头&#xff0c;以]结尾 \[.*?\]校验数字的表达式 数字&#xff1a;^[0-9]*$n位的数字&#xff1a;^\d{n}$至少n位的数字&#xff1a;^\d{n,}$m-n位的数字&#xff1a;^\d{m,n}$零和非零开头的数字…

Java List循环安全删除元素

Java List循环安全删除元素的几种方式如下&#xff1a; 使用迭代器&#xff08;Iterator&#xff09;&#xff1a;通过调用List的iterator()方法获取List的迭代器&#xff0c;然后使用迭代器的remove()方法删除元素。这种方式可以避免在遍历过程中修改List导致的并发修改异常&…

英特尔开始加码封装领域 | 百能云芯

在积极推进先进制程研发的同时&#xff0c;英特尔正在加大先进封装领域的投入。在这个背景下&#xff0c;该公司正在马来西亚槟城兴建一座全新的封装厂&#xff0c;以加强其在2.5D/3D封装布局领域的实力。据了解&#xff0c;英特尔计划到2025年前&#xff0c;将其最先进的3D Fo…

Facebook HiPlot “让理解高维数据变得容易”

在这个全球信息化的时代&#xff0c;数据量呈爆炸式增长&#xff0c;数据的复杂性也是如此。如何有效地处理高维数据并找到隐藏在其中的相关性和模式是一个严峻的挑战。近年来&#xff0c;可视化和可视化分析已被应用于该任务&#xff0c;并取得了一些积极成果。Facebook的新Hi…

【100天精通python】Day45:python网络爬虫开发_ Scrapy 爬虫框架

目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件 5 使用管道Pielines 1 Scrapy 的简介 Scrapy 是一个用于爬取网站数据并进行数据提取的开源网络爬虫框架。它使用 Python 编程语言编写&#xff0c;并提供了一套强大的工具和库&#xff0…

Kali Linux 2023.3 发布

Offective Security 发布了 Kali Linux 2023.3&#xff0c;这是其渗透测试和数字取证平台的最新版本。 Kali Linux 2023.3 中的新工具 除了对当前工具的更新之外&#xff0c;新版本的 Kali 通常还会引入新的工具。 这次&#xff0c;他们是&#xff1a; Calico – 云原生网络…

TypeC扩展芯片|TypeC音视频转换芯片|ASL集睿致远|方案选型

ASL集睿致远专注于研发交付高速接口连接和多媒体应用的竞争解决方案&#xff0c;广泛应用于移动和个人电脑市场&#xff0c;Typec扩展芯片&#xff0c;Typec音视频转换芯片。 ASL集睿致远拥有完整的内部设计流程&#xff0c;包括模拟、数字、混合模式和后端流程。完整的集成电路…

ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2

环境信息&#xff1a;VMware Workstation 17 Pro ubuntu20.04 (清华源) ubuntu 源点进去选&#xff1a;ubuntu-22.04.3-desktop-amd64.iso 如果之前装过VPP&#xff0c;用以下命令确定是否卸载干净&#xff1a; dpkg -l | grep vpp dpkg -l | grep DPDK 卸载&#xff1a; …

【数据仓库】Linux、CentOS源码安装Superset

Linux、CentOS源码安装Superset步骤&#xff0c;遇到的各种问题。 报错问题&#xff1a; Linux下pip版本问题 You are using pip version 8.1.2, however version 22.2.2 is available. 解决办法&#xff1a; 安装python3的pip yum install python3-pip再升级 pip3 install…

stm32 之20.HC-06蓝牙模块

原理图显示使用usart3串口使用的是PB10和PB11引脚 直接配置usart3串口协议 void usart3_init(uint32_t baud) {GPIO_InitTypeDef GPIO_InitStructureure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;//端口B硬件时钟打开RCC_AHB1PeriphClockC…

如何通过tomcat下载映射下载文件

1.1找到tomcat服务器中server.xml文件 !--doBase是静态资源路径位置&#xff0c; path作用相当于设置的key, doBase作用相当于value --> <Context path"/download" docBase"E:\testBackData"></Context>1.2 找到tomcat服务器中web.xml文…

❤ Vue使用Eslint检测报错问题和解决

❤ Vue使用Eslint检测报错问题和解决 1、 关闭Eslint检测 关闭ESLint语法检测即可&#xff1a;具体步骤如下&#xff1a; 第一步我们打开setting设置&#xff1a; 打开左上角的file&#xff0c;然后点击setting 接下来进入setting以后我们来看下面操作&#xff1a; eol-l…

LAMP架构介绍配置命令讲解

LAMP架构介绍配置命令讲解 一、LAMP架构介绍1.1概述1.2LAMP各组件的主要作用1.3各组件的安装顺序 二、编译安装Apache httpd服务---命令讲解1、关闭防火墙&#xff0c;将安装Apache所需的软件包传到/opt/目录下2、安装环境依赖包3、配置软件模块4、编译安装5、优化配置文件路径…

鼠标拖拽盒子移动

目录 需求思路代码页面展示【补充】纯js实现 需求 浮动的盒子添加鼠标拖拽功能 思路 给需要拖动的盒子添加鼠标按下事件鼠标按下后获取鼠标点击位置与盒子边缘的距离给 document 添加鼠标移动事件鼠标移动过程中&#xff0c;将盒子的位置进行重新定位侦听 document 鼠标弹起&a…

iOS开发Swift-集合类型

集合基本类型&#xff1a;数组 Array (有序)&#xff0c; 集合 Set (无序不重复)&#xff0c; 字典 Dictionary (无序键值对) 1.数组 Arrays (1)数组的表示 Array<Element> [Element](2)创建空数组 var someInts: [Int] [] someInts.count //数组长度(3)带值数组 var…

Grounded Language-Image Pre-training论文笔记

Title&#xff1a;Grounded Language-Image Pre-training Code 文章目录 1. 背景2. 方法&#xff08;1&#xff09;Unified Formulation传统目标检测grounding目标检测 &#xff08;2&#xff09;Language-Aware Deep Fusion&#xff08;3&#xff09;Pre-training with Scala…

【linux】基本指令(二)【man、echo、cat、cp】

目录 一、man指令二、echo指令三、cat指令二、cp指令一些常见快捷键 一、man指令 Linux的命令有很多参数&#xff0c;我们不可能全记住&#xff0c;可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令 常用选项 1.-k 根据关键字搜索联机帮助 2…

基于 SVG 的图形交互方案实践

不知道从什么时候起&#xff0c;人们开始喜欢上数字大屏这种“花里胡哨”的东西&#xff0c;仿佛只要用上“科技蓝”这样神奇的色调&#xff0c;就可以让一家公司焕然一新&#xff0c;瞬间变得科技感满满。不管数字大屏的实际意义&#xff0c;是用来帮助企业监控和决策&#xf…