小猪猪逆袭成博士之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. cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)

    链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...

  2. BZOJ 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路( 最短路 )

    直接floyd.. ----------------------------------------------------------------------- #include<cstdio ...

  3. Spring--依赖注入

    Spring 能有效地组织J2EE应用各层的对象.不管是控 制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调.运行.Spring将 ...

  4. Android开发中出现cannot be resolved to a variable错误,也就是R文件不能生成。

    最近开始学过习Android开发,配置完成开发环境后,在创建第一个Android项目就出现了cannot be resolved to a variable错误,也就是R文件不能生成的问题. 以下是从 ...

  5. perl5 第十章 格式化输出

    第十章 格式化输出 by flamephoenix 一.定义打印格式二.显示打印格式三.在打印格式中显示值  1.通用的打印格式  2.格式和局域变量  3.选择值域格式  4.输出值域字符四.输出到 ...

  6. hdoj 1251 统计难题(字典树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 思路分析:该问题要求求出以某个字符串为前缀的单词数目,通过使用字典树,在字典树中添加count记 ...

  7. CodeForces 150B- Quantity of Strings 推算..

    假设 k = 5 , n>k ,   (1,2,3,4,5)  -> 1=5,2=4,3任意 (2,3,4,5,6) -> 2=6,3=5,4任意...综合上面的可得出1=3=5,2 ...

  8. android 中文 api (71) —— BluetoothServerSocket[蓝牙]

    前言 本章内容是  android.bluetooth.BluetoothServerSocket,为Android蓝牙部分的章节翻译.服务器通讯套接字,与TCP ServerSocket类似.版本为 ...

  9. 淘特房产CMS系统 7.5

    资源描写叙述: 淘特房产CMS系统採用淘特AspCms开发,全部前台信息生成静态HTM,提供了楼盘.二手房.房产中介.房产经济人.业主社区等管理模块,集成了淘特CMS与动网论坛,Discuz,Oblo ...

  10. 【翻译自mos文章】oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗?

    oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗? 參考原文: Does Oracle support Symbolic Links in the RDBMS ...