小猪猪逆袭成博士之C++基础篇(三)字符串
小猪猪逆袭成博士之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++基础篇(三)字符串的更多相关文章
- 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则
小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...
- 小猪猪逆袭成博士之C++基础篇(二) 常量、处理类型、自定义头文件
小猪猪逆袭成博士之C++基础篇(二) const .auto. decltype 上一章我们介绍了一些常用的类型和常见的问题,下面再介绍一些学习的时候不是特别常用但是在实际工程中很有用的一些东西. 一 ...
- Intel:从屌丝逆袭成业界大佬
原创文章,转载请标明出处哈,Thanks♪(・ω・)ノ. 参考<Linux内核情景分析><深入理解计算机系统><深入理解linux内核><Orange'S:一 ...
- 快递小哥逆袭自传:用了6年时间做到了IT部门主管
在我30岁生日那天,终于收到升职的通知,自己如愿的也从一名小小程序员升职成为IT主管,负责公司硬件设备驱动程序开发项目,工资也从原来月薪10K变到现在月薪20K.或许对于很多人而言,在三十岁的时候,可 ...
- 成小胖学习ActiveMQ·基础篇
过了个春节,回到公司的成小胖变成了成大胖.但是你们千万别以为他那个大肚子里面装的都是肥肉,里面的墨水也多了不少嘞,毕竟成小胖利用春节的半个月时间专心学习并研究了 ActiveMQ,嘿嘿……这不,为了检 ...
- 《成神之路-基础篇》JVM——Java内存模型(已完结)
Java内存模型 本文是<成神之路系列文章>的第一篇,主要是关于JVM的一些介绍. 持续更新中 Java内存模型 JVM内存结构 VS Java内存模型 VS Java对象模型(Holli ...
- 小课堂Week10 例外处理设计的逆袭Part3
小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 ...
- 二本毕业,我是如何逆袭成为BAT年薪40W的Java工程师的?
身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的.其实很简单——努力! 我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找 ...
- 小课堂Week9 例外处理设计的逆袭Part2
小课堂Week9 例外处理设计的逆袭Part2 今天继续阅读<例外处理设计的逆袭>这本书,我们先看两个案例: 案例1 问:如果要设计一个依据学号到数据库中查询学生资料的函数,当找不到符合条 ...
随机推荐
- css中z-index属性(标签层叠次序)
定义和用法 z-index 属性设置元素的堆叠顺序.拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. 注释:元素可拥有负的 z-index 属性值. 注释:Z-index 仅能在定位元素上奏 ...
- python自学笔记(六)二进制与位移
一.二进制 a = 1 bin(a)-->ob1 #python内置方法 ob 表示二进整型制格式 二.难缠符号 1.位移二进制的位 >> 右位移,想象成 切肉切去最后一位 例如 ...
- React使用笔记2-React Components的生命周期
Date: 2015-11-27 21:23 Category: Web Tags: JavaScript Author: 刘理想 [toc] 1. React Components的生命周期 Rea ...
- Oracle10g任务调度创建步骤
/* 创建可执行程序 */begin DBMS_SCHEDULER.CREATE_PROGRAM( program_name => 'peace_sj_his.PROG_DATASYNC', p ...
- java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决方案
在Myeclipse中运行小应用程序时出现如下异常的解决办法 java.lang.UnsupportedClassVersionError: Bad version number in .class ...
- HDU 1104 Remainder( BFS(广度优先搜索))
Remainder Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- Fractal(递归,好题)
Fractal Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8341 Accepted: 3965 Descripti ...
- Ext JS学习第六天 Ext自定义类(一)
此文来记录学习笔记 •我们在之前的学习,已经对ExtJS有了一个初步的认识,那么如果要学好ExtJS,对于javascript是必须的,也就是说,对于理解ExtJS底层基础架构的理解也是必须的.那么我 ...
- iOS开发常识
一.NSString 创建字符串. NSString *astring = @"This is a String!"; 创建空字符串,给予赋值. NSString *astri ...
- android studio使用的各种问题
1.添加权限,没有图形界面.添加权限的位置在<application>节点外,如果在节点内添加会报错的 2.查看logcat:要查看logcat的内容,要点一下设备 3.显示行号:在set ...