C++ 字符串string类型最常用操作总结

来源:互联网 发布:个人日程安排软件 编辑:程序博客网 时间:2024/06/03 20:07

相比于C语言而言,C++提供了太多的写好了的类型和方法,其中string类型就是用起来特别方便的一种。那么问题来了,既然有C语言的char型,为什么还要学习string类型呢?我碰到过的也是最主要的一个原因就是string类型更节省空间,用多少开多少,而char类型的数组就不是了,必须开最大值。其次还有一个重要的原因就是C++中的map容器等不支持char型数组的,只能写map<string,int>mp这样。所以,扯了这么多,就来跟我看看string类型常用的技能吧。


首先要使用string数据类型,需要引入头文件 #include<string>,注意不是string.h头文件。

1.string类型的声明: 

string s;


2.string类型的初始化:    

string s="abcd";   或者   string s="a  b   cd";

这两种分别是不带空格和带空格的初始化,是都可以的。


3.string类型的读入:
cin>>s;             //不能读入空格,以空格、制表符、回车符作为结束标志
getline(cin,s);   //可以读入空格和制表符,以回车符作为结束标志


4.求string类型长度:

int len=s.size();    或者     int len=s.length();

两种方法是等价的


5.求string类型下标为i的字符:
s[i]        或        char c=s.at(i)


6.查找t是否为s的子串:
s.find(t);

如果t是s的子串则返回首次匹配的位置,否则返回 string::npos 或 -1


7.字符数组转string类型:
s=str;

str为char数组,s为string类型


8.string类型转字符数组:
strcpy(str,s.c_str());

需要引用string.h头文件


9.两个string比较大小:
if(s1<s2);       或       s1.compare(s2);

相等时返回0;s1>s2时返回1,s1<s2时返回-1


10.两个string连接:
s1=s1+s2;        或       s1.append(s2);


11对string类型数组排序

string s[100];

sort(s,s+n,cmp);

int cmp(string a,string b)
{
    return a<b; //或a>b;
}
其中sort函数为C++ STL中提供的快速排序函数。


经常用到的差不多就这么多了,还有一个就是获取string类型的某一段子串,其实这个可以利用下标生成。至于代码的演示我就不再啰嗦了,相信我说的够清楚了,大家可以自己试一下。

原创粉丝点击