小猪猪逆袭成博士之C++基础篇(三)字符串

String

写在题外的话:

非常感谢在我发了第一篇随笔以后有很多人看还评论了,这大概就是一种笔记性质的,也不一定全对,如果不对的地方请指出来让我加以改正。有时候自己心里明白在写的时候说不清楚,有时候不明白的写的时候慢慢就清楚了,还有的是不太明白写也没有写清楚。非常感谢各位能够抽时间看文章并且写评论,有什么理解不对的地方请指出来,喷的有道理我一定会虚心接受的!

字符串类型是我们经常用到的,下面介绍一些平时常用的功能。

String需要包含的头文件:#include <string>

一、一些基本的操作

1、String 的初始化大概有以下几种:

string s1;

cout<<"s1:"<<s1<<endl;

string s2="aaa";

cout<<"s2:"<<s2<<endl;

string s3(s2);

cout<<"s3:"<<s3<<endl;

string s4=s3;

cout<<"s4:"<<s4<<endl;

//string前10个都是b

string s5(10,'b');

cout<<"s5:"<<s5<<endl;

string s6("ccc");

cout<<"s6:"<<s6<<endl;

2、值得注意的是:如果cin一个字符串,string对象会自动忽略开头的空白,并从第一个真正的字符开始读起,例如我们输入一个“  hello     world”;会输出”hello”。

string s1;

cin>>s1;

cout<<s1;

那么我们想保留这些空格怎么办,用getline语句

string s1;

getline(cin,s1);

cout<<"getline:"<<s1;

这个地方的getline(cin,s1); cin不一定是cin,任何一种输入流都可以。

3、

s1.empty();//如果s1是空则返回flase,否则true;

s1.size();//返回字符长度

这里注意size()返回的是一个正整数,无符号的,所以根据第一章所述,不能跟负数一起操作!!!

4、判断字符串大小是根据字典顺序的,例如apple和boy就是boy大。

string s1="apple";

string s2="boy";

cout<<"size:"<<s1.size()<<endl;

//判断大小

if(s1>s2)cout<<"s1 is bigger"<<endl;

else cout<<"s2 is bigger"<<endl;

5、加号两个字符串相接

s1=s1+s2;

cout<<s1<<endl;

6、取字符:注意这里第一个字符是0.

char c=s1[4];

cout<<"c:"<<c<<endl;

7、一些常用的函数:头文件#include <cctype>

isalnum(c);//判断数字或者字母

isalpha(c);//判断字母

iscntrl(c);//控制符

isdigit(c);//数字

islower(c);//小写字母

isupper(c);//大写字母

isspace(c);//空格

tolower(c);//大写转小写

toupper(c);//小写转大写

8、C风格字符串

简单的说,C风格字符串就是一个char型的数组。我们把这些字符放在数组中,在最后一个字符后面跟一个’\0’表示字符串的结束。

C风格字符串不要想多了,就是一个char型的数组,跟数组的原理相同,并且适用C风格字符串函数:strlen(p)、strcmp(p1,p2)、strcar(p1,p2)、strcpy(p1,p2)等。虽然是这样,但是它本身还是个数组。

String型可以转化成C风格字符串,用c_str()可以转化。当然了如果能用string型的话string比char*是方便了许多。

小猪猪逆袭成博士之C++基础篇(三)字符串的更多相关文章

  1. 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则

    小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...

  2. 小猪猪逆袭成博士之C++基础篇(二) 常量、处理类型、自定义头文件

    小猪猪逆袭成博士之C++基础篇(二) const .auto. decltype 上一章我们介绍了一些常用的类型和常见的问题,下面再介绍一些学习的时候不是特别常用但是在实际工程中很有用的一些东西. 一 ...

  3. Intel:从屌丝逆袭成业界大佬

    原创文章,转载请标明出处哈,Thanks♪(・ω・)ノ. 参考<Linux内核情景分析><深入理解计算机系统><深入理解linux内核><Orange'S:一 ...

  4. 快递小哥逆袭自传:用了6年时间做到了IT部门主管

    在我30岁生日那天,终于收到升职的通知,自己如愿的也从一名小小程序员升职成为IT主管,负责公司硬件设备驱动程序开发项目,工资也从原来月薪10K变到现在月薪20K.或许对于很多人而言,在三十岁的时候,可 ...

  5. 成小胖学习ActiveMQ·基础篇

    过了个春节,回到公司的成小胖变成了成大胖.但是你们千万别以为他那个大肚子里面装的都是肥肉,里面的墨水也多了不少嘞,毕竟成小胖利用春节的半个月时间专心学习并研究了 ActiveMQ,嘿嘿……这不,为了检 ...

  6. 《成神之路-基础篇》JVM——Java内存模型(已完结)

    Java内存模型 本文是<成神之路系列文章>的第一篇,主要是关于JVM的一些介绍. 持续更新中 Java内存模型 JVM内存结构 VS Java内存模型 VS Java对象模型(Holli ...

  7. 小课堂Week10 例外处理设计的逆袭Part3

    小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 ...

  8. 二本毕业,我是如何逆袭成为BAT年薪40W的Java工程师的?

    身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的.其实很简单——努力! 我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找 ...

  9. 小课堂Week9 例外处理设计的逆袭Part2

    小课堂Week9 例外处理设计的逆袭Part2 今天继续阅读<例外处理设计的逆袭>这本书,我们先看两个案例: 案例1 问:如果要设计一个依据学号到数据库中查询学生资料的函数,当找不到符合条 ...

随机推荐

  1. JavaSE_ 网络编程 目录(26)

    JavaSE学习总结第26天_网络编程26.01 网络编程概述26.02 网络模型概述和图解26.03 网络编程三要素概述26.04 网络编程三要素之IP概述126.05 InetAddress类的概 ...

  2. BZOJ 1770: [Usaco2009 Nov]lights 燈( 高斯消元 )

    高斯消元解xor方程组...暴搜自由元+最优性剪枝 -------------------------------------------------------------------------- ...

  3. Windows+Apache+PHP5配置

    今天配置Windows+Apache+PHP时,遇到的问题,记录下供大家参考,也供自己以后参考!需要特别注意的:PHP v9版本的 非线程安全的 只适用于IIS,5.3版本的NTS版的没有php5ap ...

  4. JAVA中把ResultSet转换成LIST

    项目中老是遇到数据库异常关闭的情况,真烦, 想用hibernate呢,那个玩意儿又太笨重,感慨C#和PHP的舒适方便性,模拟TP写了个数据处理层,将就用着先代码里有很多项目中的东西,不要直接COPY了 ...

  5. A Byte of Python (1)安装和运行

    有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷:另一种是把它做得很复杂以至于找不到明显的缺陷. ——C.A.R. Hoare 获得人生中的成功需要的专注与坚持不懈多过天才与机会. ...

  6. C# 读书笔记之访问关键字this和base

    this 关键字引用类的当前实例.静态成员方法中不能使用this关键字,this关键字只能在实例构造函数.实例方法或实例访问器中使用. base 关键字用于从派生类中访问基类的成员. 指定创建派生类实 ...

  7. SPSS19.0实战之聚类分析

    这篇文章与上一篇的回归分析是一次实习作业整理出来的.所以参考文献一并放在该文最后.CNBlOG网页排版太困难了,又不喜欢live writer…… 聚类分析是将物理或者抽象对象的集合分成相似的对象类的 ...

  8. 网上下载的“上下3D”和“左右3D”影片该如何播放?

    我们平常买的红蓝3D眼镜智能播放红蓝3D片源.网上找3D电影的时候,虽试图去找红蓝3D格式电影,但总会找到不少“左右格式”或者"上下格式"影片.正常播放后发现有两重画面.这种3D电 ...

  9. contains 和 ele.compareDocumentPosition确定html节点间的关系

    ~~~ nodeA.contains(nodeB) //ie ,   nodeA.compareDocumentPosition(nodeB) //firefox opera 1.DOMElement ...

  10. AES 加密

    package com.sprucetec.tms.utils; import java.security.Key; import javax.crypto.Cipher;import javax.c ...