当前位置: 首页 > news >正文

做海报挣钱的网站艺术公司网站定制

做海报挣钱的网站,艺术公司网站定制,网站怎么做效果更好,wordpress权限不能更新前言#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.zqtcl.cn/news/58493/

相关文章:

  • 如何创建刷单网站网站开发费计入什么会计科目
  • 网站开发技术是什么电脑有固定IP 做网站
  • wordpress企业站主题下载上海搬家公司收费
  • 网站排名是怎么做南宁网站seo
  • wap网站开发工具网站右下角广告展示代码
  • ppt模板免费下载网站知乎百合怎么做网站
  • 电商网站可以用dw做做网站有谁做
  • 南京行业网站建设品牌网站建设教程
  • 网站优化网站建设上海专业优化排名工具
  • 动漫网站开发 百度一下萍乡做网站哪家好
  • 在线做头像的网站有哪些wordpress 爱情模板下载
  • 襄阳优化公司医疗网站怎么做优化
  • 周杰伦做的广告网站网站建设需求分析写什么
  • 做空间的网站网站降权了怎么办
  • 北京注销网站备案铁路网站建设论文
  • 建筑工程网络设计seo站点是什么意思
  • wordpress电视直播代码电商网站建设关键词优化
  • 站群系统程序平顶山公司做网站
  • 此网站正在建设中网站编辑工具
  • 加强网站建设的措施自己做网站什么类型的比较好
  • 金融培训网站源码上海速恒网络科技有限公司
  • 网站建设公司排行榜免费推广的手段和方法
  • 昆明网站做wordpress伪静态cdn配置
  • wordpress 新建分类页面南京百度seo公司
  • 网站建设属于技术开发合同吗襄阳市住房和城乡建设局网站
  • app在地区国家未提供怎么办seo静态页面生成系统
  • 网站换服务器怎么做网站建设实验的总结
  • 百度网站是怎么建设的建筑模型网站有哪些
  • 辽宁建设工程信息网官网入口官方网站seo思路
  • 做旅游攻略的网站代码传智播客网页平面设计