初识String
迄今为止,我接触C语言和C++也有一段时间了,在这段时间里经过编码实践,感觉使用频率较高但操作起来比较复杂和繁琐的数据类型就是char型数组,也就是字符串啦,它用的比较频繁但操作却缺乏一种简单有效的手段,往往需要使用一系列的函数来应付。比如strlen、strcat、strcpy、strcmp、strncpy、strncmp、strstr。当这些函数用的多了之后简直就令人抓狂。~~~~(>_<)~~~~
先来看一段代码:
#include <iostream>
using namespace std;
#include <string>
//使用string 时要包含头文件
int main()
{
string name="Zhang si"; //可以直接定义
string hobby("football");
cout<<name<<hobby<<endl; //可以通过out直接输出,非常方便
return 0;
}<span style="color:#000099;">
</span>
感受到string的方便了吧!
(一) string的初始化方式
当然了String的便捷不仅体现在它的初始化方面,更多的是它提供了一整套的人性化的服务,下面我就一一介绍。
(二)string的常用操作
注:S为已经定义出来的一个string变量。我们可以通过——s.——的方式访问string中的一些成员函数。
有了这个,我们在使用的过程中就不用调用大量函数了,而是使用了一些非常方便的操作符和一些成员函数。
这里要着重说一下字符串的连接即图中的 s1+s2;
看一下下面的几个小例子:
string s1 = " hello "; //定义合法
string s2 ("world"); //定义合法
string s3 = s1 + s2; //s3是由s1和s2连接起来的,s3当中是 hello world 合法
string s4 = "hello" + s2; //双引号的内容和string对象连接也是合法的
string s5 = "hello" + s2 + "world"; //双引号和一个string对象再加一个双引号内容也是合法的
string s6= "hello" + "world"; //错误!!!!!只有当string对象和双引号连接才是合法的!!!
(三)例子演示:
#include <iostream>
using namespace std;
#include <string>
/*------------------------------------------------*/
/*题目描述:
1、提示用户输入姓名
2、接收用户的输入
3、然后向用户问好,hello XXX。
4、告诉用户名字的长度
5、告诉用户名字的首字母
6、如果用户直接输入回车,那么告诉用户的输入为空
7、如果用户输入优快云,那么告诉用户的角色是一个管理员*/
/*------------------------------------------------*/
int main()
{
string name; //定义一个空串
cout<< " Please input your name: "; //提示用户输入姓名
getline(cin,name);
//这里的输入不能简单的使用cin,因为我们这里要判断它的输入是否为空,所以我们用一个函数getline(cin,name);
//如果用户输入的是一个回车,那么它会给name一个空串;
if(name.empty()) //通过调用empty函数,判断name是否为空
{
cout<<" Input is null."<<endl; //如果为空,告诉用户输入为空
return 0;
}
if(name=="优快云") //如果输入优快云告诉用户的角色是一个管理员
{
cout<<" You are a administrator."<<endl;
}
cout<<" hello " + name <<endl; //告诉用户的角色是一个管理员
cout<< " You name length: "<<name.size()<<endl; //通过size函数得到字符长度
cout<< " You name first letter is: "<<name[0]<<endl; //name[0]得到首字母
return 0;
}
(四)功能实现:
1、 提示用户输入姓名
接收用户的输入
然后向用户问好,hello XXX。
告诉用户名字的长度
告诉用户名字的首字母
2、如果用户直接输入回车,那么告诉用户的输入为空
3、如果用户输入优快云,那么告诉用户的角色是一个管理员