初始化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; }