个人或主题网站建设 实验体会个人网站托管

web/2025/10/7 3:53:05/文章来源:
个人或主题网站建设 实验体会,个人网站托管,桂城网站制作,深圳网站设计首选刻前言#xff1a;在日常的程序设计中#xff0c;我们会经常使用到字符串。比如一个人的身份证号#xff0c;家庭住址等#xff0c;只能用字符串表示。在C语言中#xff0c;我们经常使用字符数组来存储字符串#xff0c;但是某些场景(比如插入#xff0c;删除)下操作起来很…前言在日常的程序设计中我们会经常使用到字符串。比如一个人的身份证号家庭住址等只能用字符串表示。在C语言中我们经常使用字符数组来存储字符串但是某些场景(比如插入删除)下操作起来很繁琐。在C中底层设计了一个string类将经常使用的功能封装在其中使用起来非常简单便捷。 本文主要介绍string的使用方法和几个常用函数最后再列举几个经典例题。 我们使用string时经常会用到它封装的函数这里推荐一个网站C Reference。函数忘了怎么使用时可以参考该网站。 目录 一.介绍二.使用1.创建一个字符数组存储字符串hello world2.截取部分字符串3.从键盘上输入 三.常用重载运算符和函数1./2.size()3.capacity()4.reserve()5.[]运算符遍历string6.push_back()尾部插入一个字符7.append() 尾部插入一段字符串8.insert() 头部插入 四.迭代器1.iterator 正向迭代器重点2.reverse_iterator 反向迭代器3.reverse函数(字符串逆置神器) 五.例题1.字符串相加2.字符串最后一个单词长度 一.介绍 长话短说不将它讲的太神秘 string是用字符的顺序数组实现的类用于管理字符数组。 我们平常怎么使用自定义的类就怎么使用string。 二.使用 1.创建一个字符数组存储字符串hello world 格式string 对象(字符或字符串) 1.形如string str2(hello world)实际上就是调用string类的构造函数初始化对象str2. 2.string类中有流提取流插入运算符重载可以直接输出或者输出string类型数据。 //C语言 char str1[] hello world; //C string str2(hello world); //构造函数 string str3(#); //单个字符 cout str2 endl; //string类中有流提取流插入运算符重载可以直接输出或者输出string类型数据。控制台输出如下 2.截取部分字符串 string类对此也进行了设计第一个参数为截取string对象第二个为需要截取部分的起始下标第三个参数为截取字符个数单位是字节 如下代码想截取s1对象中的world给给s2w的下标为6(第二个参数),world有5个字符(第三个参数) int main() {string s1(hello world);string s2(s1, 6, 5); //截取s1对象中的world给给s2cout s2 endl; }控制台输出如下可以看到截取成功了 3.从键盘上输入 这里就可以体现string的优点 使用C语言我们需要考虑给字符数组开多大的空间而string不用我们考虑这点我们只管输入编译器会自动帮我们适配合适的空间。 int main() {string s1; //实例化一个对象s1cin s1; // 输入cout s1 endl; //打印return 0; }如下前两行为从键盘上输入的后两行为打印的。 三.常用重载运算符和函数 string函数设计的接口感兴趣的可以去文章开头给的网站看看。下面某些函数只给出常用的接口。 1./ 单从这个题目就能让你感受到string的魅力 请看题目从键盘上输入两个字符串要求将后一个字符串拼接到前一个字符串后面输出拼接后的前一个字符串。字符串长度不超过50字节 从C语言角度考虑首先我们要开两个不小于50字节的字符数组之后简单一点的就是使用strcat函数拼接。但是strcat函数长久不用我忘掉了呢还要再去翻看笔记回忆。 Cstring类对运算符进行了重载这个的本质就是尾插 int main() {string s1, s2;cin s1 s2;s1 s1 s2; //s1,s2顺序不能颠倒//s1 s2; //使用也可以cout s1 endl;return 0; }控制台输出如下其中第一行为输入的s1第二行为输入的s2第三行为拼接后的s1 2.size() 返回string对象的有效字符长度不包括\0,相当于C语言的strlen。 int main() {string s1(hello world);cout s1.size() endl;return 0; }控制台输出如下 3.capacity() 返回string对象的容量 我们知道string会自动扩容而它当然不是一个一个字节阔的它是按照一定倍率扩容。 int main() {string s1(hello world);cout size: s1.size() endl;cout capacity: s1.capacity() endl;return 0; }控制台输出如下可以看到有效字符大小为11字节容量为15字节。 4.reserve() reserve——保留(不要把它当成reverse(逆置) 功能请求容量的变化 价值如果确定大概需要开多大的空间可以提前开好减少扩容提高效率。扩容是有代价的特别是异地扩容需要拷贝旧空间的数据移到新空间 int main() {string s1(hello world);cout size: s1.size() endl;cout 原capacity: s1.capacity() endl;s1.reserve(100);cout 新capacity: s1.capacity() endl;return 0; }控制台输出如下 5.[]运算符遍历string string类对[]运算符进行了重载使得我们可以借助[]像访问数组一样访问string。对于解决一些与字符串有关的题很有帮助。 以遍历string为例 int main() {string s1(hello world);for (size_t i 0; i s1.size(); i) //运用size()函数{cout s1[i] ; //下标访问}return 0; }控制台输出如下 6.push_back()尾部插入一个字符 在string对象尾部插入一个字符 int main() {string s1(hello world);s1.push_back(x);cout s1 endl;return 0; }控制台输出如下 7.append() 尾部插入一段字符串 形式append(字符串/string对象) 实际上设计的有些冗余插入的话我们直接用就行了何必再使用append函数呢 int main() {string s1(hello world);string s2(!!!);s1.append(xxx);s1.append(s2);cout s1 endl;return 0; }控制台输出如下 8.insert() 头部插入 插入一个字符 1.常规做法s.insert(起始位置下标插入个数要插入字符) 2.迭代器做法s.insert(s.begin(),要插入字符) int main() {string s1(hello world);string s2(hello world);string s3(hello world);s1.insert(1,1,x); // 在h后插入一个xs2.insert(1, 2, x); // 在h后插入两个x s3.insert(s3.begin(), x); // 头插x cout s1 s1 endl; //hxello worldcout s2 s2 endl; //hxxello worldcout s3 s3 endl; //xhello worldreturn 0; }插入一段字符串s.insert(起始位置下标字符串) int main() {string s1(hello world);s1.insert(1,xx);cout s1 endl; //hxxello worldreturn 0; }四.迭代器 1.iterator 正向迭代器重点 函数名作用下面函数仅适用于正向迭代器begin()返回string开头的地址end返回string最后一个有效字符的下一个位置的地址一般都是\0 iterator是迭代器的意思它封装在string类中list树等数据结构中都有迭代器故而使用时要受string类域限制要写成string::iterator形式。使用时可以将它想象成一个指针来理解。 借助迭代器遍历string int main() {string s1(hello world);string::iterator str s1.begin();//auto str s1.begin(); 写成这样也可以auto是类型指示符可以根据begin推出正向迭代器while (str ! s1.end()) {cout *str ;str;}cout endl;return 0; }控制台输入如下 上述代码借助begin()函数返回开始位置的迭代器end()指向最后一个字符下一个位置此处就是\0。 问可这样子不就是单纯的指针遍历吗何必那么麻烦还使用迭代器 答迭代器的一个特点就是通用性在vectorlist树等中都有迭代器。就以list举例它是由一个一个的小结点组成的物理空间中并不是连续的使用结点指针并不能找到它的下一个结点但是像上述代码一样套上迭代器就可以遍历list。因此迭代器遍历才是最主流的遍历方式。 2.reverse_iterator 反向迭代器 函数名作用下面函数仅适用于反向迭代器rbegin()返回string最后一个有效字符的下一个位置的地址一般都是\0rend返回string开头的地址 顾名思义跟正向迭代器相反reverse_iterator是反正使用的。 借助反向迭代器倒着遍历string int main() {string s1(hello world);string::reverse_iterator str s1.rbegin();//auto str s1.rbegin(); 写成这样也可以auto是类型指示符可以根据rbegin推出反向迭代器while (str ! s1.rend()){cout *str ;str;}cout endl;return 0; } 控制台输入如下可以看到它是倒着遍历的 补const迭代器const_iterator const_reverse_iterator 总计共有4种迭代器。 3.reverse函数(字符串逆置神器) 传入迭代器区间 reverse(s.begin(),s.end()); int main() {string s1(hello world);reverse(s1.begin(), s1.end()); //传入迭代器区间cout s1 endl;return 0; }控制台输出如下 五.例题 1.字符串相加 点击链接 高精度不能用整型或长整型直接相加。 运用string一位一位相加进位。 class Solution { public:string s;string addStrings(string num1, string num2) {int end1 num1.size()-1,end2 num2.size()-1;int ret 0,sum 0;while(end1 0 || end2 0){int n1 end10?num1[end1]-0:0;int n2 end20?num2[end2]-0:0;sum n1n2ret;ret sum/10;s sum%100;--end1;--end2;}if(ret 1)s 1;reverse(s.begin(),s.end());return s;} };2.字符串最后一个单词长度 1.牛客要包头文件 string 2.rfind()若没找到返回无符号的-1 3.string::npos 无符号的-1 4.注意只有一个单词的情况 #include iostream #includestring using namespace std; int main() {string s1;getline(cin,s1);size_t eblack s1.rfind( ); //倒着找第一个空格没找到返回无符号的-1if(eblack ! string::npos){cout s1.size()-(1eblack); //下标-1}else {cout s1.size();}return 0; }文末BB对哪里有问题的朋友尽管在评论区留言若哪里写的有问题也欢迎朋友们在评论区指出博主看到后会第一时间确定修改。最后制作不易如果对朋友们有帮助的话,希望能给博主点点赞和关注.

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

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

相关文章

建设银行网站查余额查询百度域名注册

通用语法及分类 DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用来创建数…

如何创建二级域名网站学校网站查询

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面&#xff0…

优化网站方法网站建设的几个阶段

有时候,网页上需要提供将当前页面上的数据导出为本地文件的功能,例如将页面上的一个表格导出为csv文件。这个功能看似简单,实际上却没有什么直接的方法。由于导出文件的操作(比如浏览文件目录,创建本地文件等&#xff…

山东省和住房城乡建设厅网站首页智慧团建如何转团关系

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一:双击你要使用的库 方法二:USE 数据库名 2、复制表名,字段名 3、保存链接

asp.net 4.0网站建设基础教程学设计的培训机构

1.1 实验名称 恶意软件样本行为分析 1.2 实验目的 1) 熟悉 Process Monitor 的使用 2) 熟悉抓包工具 Wireshark 的使用 3) VMware 的熟悉和使用 4) 灰鸽子木马的行为分析 1.3 实验步骤及内容 第一阶段:熟悉 Process Monitor 的使用 利用 Process …

制作网站的图片哪来阿里云云服务器官网

引言: 过去几周我一直在涉足深度学习领域,尤其是卷积神经网络模型。最近,谷歌围绕街景多位数字识别技术发布了一篇不错的paper。该文章描述了一个用于提取街景门牌号的单个端到端神经网络系统。然后,作者阐述了基于同样的网络结构…

玉林住房和城乡建设部网站邢台网站维护

前提 el-select属性 popper-append-to-body 必须 为 false。这样初始化的列表 el-select-dropdown 才在 el-select下;目前测试,仅对 Cesium.Viewer 生成的 canvas 点击时列表无法自动关闭;使用原生 canvas 和 echarts,点击其场景…

模板网站和定制网站的优劣势对比郑州高端网站定制建设

曲线拟合已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数(其图形为一曲线)使 在原离散点 上尽可能接近给定的值,这一过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法,该方法是寻找函数 使得 最小。MATLAB函…

四川网站备案核验单做网站运营的要求

获取安装包 可以访问mysql 官网下载压缩安装包 (官网地址:https://downloads.mysql.com/archives/community/) 根据自己的需要,下载对应mysql版本,我选择是是8.0.16版本 安装 解压之后,可以看到压缩包…

学院网站源码汕头网络推广教程

文章目录 1 里程碑2 专栏梳理2.1 已有专栏整理2.2 新开的专栏 1 里程碑 前段时间我也达到了两千粉丝,也成为了CSDN人工智能领域的博客新星,算是一个小小的里程碑吧,所以我决定将自己之前的文章系统梳理,然后同时也进行未来文章的…

天津效果图制作公司如何优化网站代码

一、情景描述 我们在日常学习中,经常会忘记自己的虚拟机中MySQL的root密码。 这个时候,我们要想办法重置root密码,从而,解决root登陆问题。 二、解决办法 1、修改my.cnf配置文件并重启MySQL 通过修改配置文件,来跳…

做网站需要买服务器酒店建筑设计

目录 一、池化层 1、最大池化层 2、平均池化层 3、总结 二、代码实现 1、最大池化与平均池化 2、填充和步幅(padding和strides) 3、多个通道 4、总结 一、池化层 1、最大池化层 2、平均池化层 3、总结 池化层返回窗口中最大或平均值环节卷积层对位置的敏感性同样有窗口…

彩票网站制作找谁生成短链接

基于SpringBoot的“体育购物商城”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体模块设计 前台用户登录界面 系统首页界面…

spring做网站wordpress电脑主题

规则引擎更新功能 新增: 1、新增SQL变量: SQL变量通常指的是在执行SQL查询时使用的动态变量。这些变量允许在查询中注入或更改某些值,以便根据不同的条件或输入执行不同的查询。 1.1 新增自定义SQL语言进行数据查询; 用户可以使用自定义的…

2018主流网站建设语言在国内做敏感网站

项目场景: 在制作数据视图时经常会遇到多个数据视图的情况,在多个数据视图的情况下做自适应是比较麻烦的,这里就详细的分析一下该如何去制作,分享一下我的解决办法及思路。 定义 DOM 容器 这里需要注意一个地方,在定…

十佳网站济南网站建设丨 首选搜点网络

输出的第一行(Mem:)显示出物理内存的使用情况。总和(total)列中并没有显示出被内核使用的内存,它通常将近一兆字节。已用列(used column)显示出已用内存的总和(第二行没有把缓冲算进来)。空闲列(free column)显示了所有未被使用的空闲内存。共享列(shared column)显…

哪些做调查问卷挣钱的网站网络营销的好处

假如企业需要利用CRM软件来对自己的客户实施一系列的管理维护流程,那么客户服务自动化是个必选的功能流程,如果没有服务自动化流程,那么CRM软件就成了一个普通客户资料信息管理工具,只能被用于储存调用客户的相关信息,…

随州网站优化网络营销策略包括哪些方面

Lumina-T2X:大型扩散DiTs在多模态内容生成中的新篇章 摘要 随着人工智能技术的飞速发展,多模态内容生成已成为计算机视觉和自然语言处理领域的研究热点。本文介绍了Lumina-T2X,一个基于大型扩散变换器(Diffusion Transformers, …

免费建立永久网站小型教育网站的开发建设论文

打印课堂上图案 判断一个数是否是质数(素数) 设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面) 展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款 输入付款金额->打印购买小票&a…

查询网站备案进度查询加强网站建设的

预言机 1. 概述 预言机主要承担两个工作,一是验证信息可靠性,二是传递信息。 如果没有预言机,区块链的信息来源将仅限于其内部数据,其广泛使用的潜力和可能性将会大大降低。 区块链预言机是区块链与外部世界之间的桥梁。它们使区…