C++学习笔记12--string

string类--C++风格的字符串类,<string>

  构造函数:string(const string& s),string(const char* s)

       string(int n,char c);

  运算符:<<,>>,=,+,+=,[]不检查越界,at(int)会检查越界,比较运算符<,<=,>=,>,==,!=

  长度:size(),length(),bool empty(),resize(newsize,fillc)

  转换成C风格:c_str(),data()不保证‘\0‘,copy(char* to,int n字符数,int start = 0)复制从start位置开始的的n个字符到to所指向的地方。

  子串:substr(int start,int n)返回从start开始的n个字符组成的一个字串string对象,原对象还保持不变

  追加:append(int n,char c)追加n个字符在末尾

  查找:find(char c,int start=0) //从左向右找

       find(const char* s ,int start=0)  //C风格

      find(const string& s ,int start=0) //C++风格

     rfind(...) //参数一样 从右向左找,其中可以用string::npos表示末尾 npos = -1

       find_first_of(...)  //参数跟find一样,找第一个

       find_fist_of(字符串s,int start=0),从start位置开始找在字符串s中包含字符

       find_first_of("+-*/") 表示在原字符串中找第一个运算符 有找到返回位置,没找到返回npos

     find_last_of(...)

       find_fist_not_of(...)

     find_last_not_of(...)

     找到返回下标,没找到返回string::npos

  删除:erase(int start=0,int n = string::npos)

  替换:replace(int start,int n,新字符串)

     replace(int start,int n,int n2,char c2)

      把start位置开始的n个字符替换成新字符串或者n2个c2

  插入:insert(int pos,新字符串)

     intsert(int pos,int n,char c)

  C++ 非string 行输入:gets(buf)容易越界限,fgets(buf,sizeof(buf),stdin)保留了换行符在末尾,scanf("%[^\n]",buf)读到\n为止,读取一行 也容易越界

  string读行: string s; getline(cin,s);

    

时间: 2024-10-14 05:46:40

C++学习笔记12--string的相关文章

python基础教程_学习笔记12:充电时刻——模块

充电时刻--模块 python的标准安装包括一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 假设将python程序保存在/home/ggz2/magiccube/mysh/p

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Xitrum学习笔记12 - 范围

一.Request 参数种类 1. 文本参数:名为textParams,类型为 scala.collection.mutable.Map[Sting, Seq[String]] 1)queryParams:URL中 ? 后面的参数,例:http://example.com/blah?x=1&y=2 2)bodyTextParams:在POST请求体里的参数 3)pathParams:嵌入到URL的参数,例:GET("articles/:id/:title") 从1)到3),同名

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧

MiZ702学习笔记12&mdash;&mdash;封装一个普通的VGA IP

还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个铺垫. 打包成一个普通的IP的目的,可以直接将这个IP粘贴到Block文件中.(和用文本实例化是一个意思).应为我们调用zynq的核的时候一般是用Block的形式,为了zynq和我们的VGA模块更方便的组织起来,就需要这种IP打包方式. 为什么是强调是普通的IP,这个主意是区分带AXI接口的IP,这个在后面介

《ASP.NET MVC 4 实战》学习笔记 12:结束与总结

本篇是<ASP.NET MVC 4 实战>这本书学习笔记的最后一篇,最后还是没有坚持将全书的内容学习下来... 其实后面还讲了许多内容:AutoMapper.区域.NHibernate.测试.部署等,但是我基本都搞不懂了. 当时选这本书作教材就是因为偏向实践,可越往后越偏向于理论,很多知识点没有实例也搞不懂在讲什么. 原因有三:1.学习能力不强:2.心情有点急躁:3.不知是原文就这样还是翻译的原因,很多地方的表述很奇怪,不知道到底想表达什么. 因为没有坚持下来,心情很不美丽,不过这段时间的学习

java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理

XML 1.引入dom4j-2.0.0.jar 2.引入jquery-1.8.2.js 3.新建common.js getInfo = function(){ $.post("getXmlAction.action",{name:$('#name').val()},function(ret,status){ if("success" == status) var id = $(ret).find("id").text(); var age = $

《大话设计模式》学习笔记12:状态模式

工作状态示例: 1.State: public abstract class State { public abstract void WriteProgram(Work work); } 2.ConcreteState(以ForenoonState.NoonState.SleepingState为例): public class ForenoonState:State { public override void WriteProgram(Work work) { if(work.Hour<1