初始化string对象的方式
string s1; s1 空字符串
string s2("ABC"); 用字符串字面值初始化s2
string s3(s2); 将s3初始化为s2的一个副本
string s4(n,'c') 将s4初始化为字符'c'的n个副本

 

 

 

 

 

 

string的常用操作
s.empty() 若s为空字符串,则返回true,佛则返回false
s.size() 返回s中字符的个数
s[n] 返回s中位置为n的字符,位置从0开始
s1+s2 将两个字符串连接成一个新的字符串,返回新生成的字符串
s1=s2 把s1的内容替换为s2的副本
v1==v2 判定相等,相等返回true,否则返回false
v1!=v2 判定不等,不等返回true,否则返回false

 

 

 

 

 

 

 

 

 

 

字符串拼接时注意的问题:

string s1 = "hello";

string s2("world");

string s3 = s1 + s2;

string s4 = "hello" + s2;

string s5 = "hello" + s2 + "world";

string s6 = "hello" + "world";  (这样的写法是错误的)

第一种和第二种时两种给字符串初始化的方式;

第三、四、五种是正确的字符串拼接方式;

最后一种是错误的字符串拼接方式。

注意:只有string类型的字符串变量和双引号内的字符串拼接,或者两个string类型的字符串拼接才是合法的,只有两个双引号引起的字符串拼接时不合法的。

代码演示

注意:在使用string时要引入相应的头文件 #include<string>

#include <iostream>
#include <string>
using namespace std;

/*********************************************************************
题目描述:
    1.提示用户输入姓名
    2.接收用户的输入
    3.然后向用户问好,hello xxx
    4.告诉用户名字的长度
    5.告诉用户名字的首字母是什么
    6.如果用户直接输入回车,那么告诉用户的输入为空
    7.如果用户输入的是imooc,那么告诉用户的角色是一个管理员

*********************************************************************/

int main()
{
    // 定义一个空字符串,用来接收用户输入的信息
    string name;    
    cout<<"请输入您的姓名:";
    cin >> name;
    //getline(cin, name); // getline() 也可以接收传入的name字符串

    // 判断字符串是否为空
    if(name.empty())   
    {
        cout<<"您输入的姓名为空"<<endl;
        system("pause");
        return 0;
    }

    // 判断用户是不是管理员
    if(name == "imooc")  
    {
        cout<<"你是管理员"<<endl;
    }
    cout << "hello " + name << endl;    // 向用户问好
    cout <<"你名字的长度是:" << name.size() << endl;// 告诉用户名字的长度,name.size()不是字符串,不能用 + 连接
    cout << "你名字的首字母是:" << name[0] << endl; // 告诉用户名字的首字母,name[0]不是字符串,不能用 + 连接

    system("pause");
    return 0;
}

 

posted on 2018-06-30 16:26  吹静静  阅读(139)  评论(0编辑  收藏  举报