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

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

String

    写在题外的话:

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

 

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

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

 

一、一些基本的操作

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

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、判断字符串大小是根据字典顺序的,例如appleboy就是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型的数组。我们把这些字符放在数组中,在最后一个字符后面跟一个表示字符串的结束。

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

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





原文地址:https://www.cnblogs.com/Dr-XLJ/p/4625252.html