13.运算符-字符串拼接
13.1 知识点
用 + 号进行字符串拼接
字符串类型不支持算术运算符进行数学运算,但可以通过 +
号进行字符串拼接。
使用 + 号直接拼接
string str = "123";
str = str + "456";
cout << str << endl; // 输出:123456
str = str + "456" + "123";
cout << str << endl; // 输出:123456456123
使用复合运算符 +=
拼接
string str = "1";
str += "234";
cout << str << endl; // 输出:1234
string str2 = "韬老狮";
str += str2 + "123" + "123";
cout << str << endl; // 输出:1234韬老狮123123
注意事项
- 不能和数值类型直接拼接
字符串拼接不支持数值类型,必须先将数值类型转换为字符串。 - 可以和字符
char
类型拼接
示例代码:string str = "1"; str += 'C'; char c = 'A'; str = str + c + 'A' + "123"; cout << str << endl; // 输出:1CAA123
避免拼接中类型错误
如下代码可能产生非预期结果,需尽量避免:
// 错误示例
str += c + 'Q';
cout << str << endl; // 结果可能并非预期
原因:
运算顺序是先计算右侧的 c + 'Q'
,两个 char
类型相加时会被转换为 int
进行加法运算,结果为 int
,与字符拼接后可能得到一个不可见或错误的字符。
用 string.append
方法进行字符串拼接
string
类型提供了 append
方法用于拼接字符串。
使用 append
拼接
// 字符串变量.append(字符串或字符串变量);
string str3 = "123";
str3.append("556");
str3.append(str + "123");
cout << str3 << endl; // 输出:1235561CAA123123
13.2 知识点代码
Lesson13_运算符_字符串拼接.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "字符串拼接\n";
#pragma region 知识点一 用+号进行字符串拼接
//之前的算数运算符 是数值类型变量进行数学运算的
// 而 string 不存在使用算数运算符进行数学运算
// 但是可以通过+号来进行字符串拼接
//注意 : 用+号拼接 是用运算符拼接的唯一方法 不能用-*/%....
//1.直接用+号进行字符串拼接
string str = "123";
str = str + "456";
cout << str << endl;//123456
str = str + "456" + "123";
cout << str << endl;//123456456123
//2.复合运算符 += 进行 字符串拼接
str = "1";
str += "234";
cout << str << endl;//1234
string str2 = "韬老狮";
str += str2 + "123" + "123";
cout << str << endl;//1234韬老狮123123
//注意:
// 1.不能和数值类型直接进行拼接
// 2.可以和字符char进行拼接
str = "1";
str += 'C';
char c = 'A';
str = str + c + 'A' + "123";
cout << str << endl;//1CAA123
//像下面这样写 是要尽量避免的 因为并不能得到我们想要的内容
//str += c + 'Q';
//cout << str << endl;//1CAA123
//原因:
// 先算右侧 再和左侧进行计算
// 右侧 是两个char相加 本质会被转换为 int进行加法运算
// 加法运算得到的结果对应的字符 可能并不存在 如果存在也不会是我们想要的结果
#pragma endregion
#pragma region 知识点二 用string.append方法进行字符串拼接
//string 类型中提供的拼接方法
//字符串变量.append(字符串或字符串变量);
string str3 = "123";
str3.append("556");
str3.append(str + "123");
cout << str3 << endl;//1235561CAA123123
#pragma endregion
}
13.3 练习题
定义一个变量存储客户的姓名,然后在屏幕上显示:“你好,XXX”,其中 XXX 代表客户的姓名
string name = "韬老狮";
// cout << "你好," + name << endl;
string strOut = "你好,";
strOut.append(name);
cout << strOut << endl; // 你好,韬老狮
定义两个变量,一个存储客户的姓名,另一个存储年龄,然后在屏幕上显示:“XXX + YYY岁了”。其中 XXX 代表客户的姓名,YYY 代表年龄。
string name2 = "韬老狮";
string age = "18";
cout << name2 + age + "岁了" << endl; // 韬老狮18岁了
输出用户信息:姓名、年龄、邮箱、家庭住址、期望工资。
string name3 = "韬老狮";
string age2 = "18";
string email = "tpaneme@163.com";
string address = "火星深处——广州";
string money = "9999999999";
cout << "姓名:" + name3 << endl
<< "年龄:" + age2 << endl
<< "邮箱:" + email + "\n"
<< "家庭住址:" + address << "\n"
<< "期望薪资:" + money + "\n";
// 输出结果:
// 姓名:韬老狮
// 年龄:18
// 邮箱:tpaneme@163.com
// 家庭住址:火星深处——广州
// 期望薪资:9999999999
请用户输入用户名、年龄、班级,并打印输出。
用户名:***
年龄:**
班级:**
cout << "请输入你的用户名" << endl;
string name4;
cin >> name4;
cout << "请输入你的年龄" << endl;
string age3;
cin >> age3;
cout << "请输入你的班级" << endl;
string classStr;
cin >> classStr;
cout << "用户名:" + name4 << endl
<< "年龄:" + age3 + "\n"
<< "班级:" + classStr << endl;
13.4 练习题代码
Lesson13_练习题.cpp
#include <iostream>
using namespace std;
int main()
{
std::cout << "字符串拼接练习题\n";
#pragma region 练习题一
/*定义一个变量存储客户的姓名,然后再屏幕上显示:“你好,XXX”
XXX代表客户的姓名*/
string name = "韬老狮";
//cout << "你好," + name << endl;
string strOut = "你好,";
strOut.append(name);
cout << strOut << endl;//你好,韬老狮
#pragma endregion
#pragma region 练习题二
/*定义两个变量,一个存储客户的姓名,另一个存储年龄,然后再屏幕上显示:“xxx + yyy岁了”。xxx代表客户的姓名,yyy代表年龄
举例(韬老狮18岁了)*/
string name2 = "韬老狮";
string age = "18";
cout << name2 + age + "岁了" << endl;//韬老狮18岁了
#pragma endregion
#pragma region 练习题三
//当我们去面试时,前台会要求我们填一张表格,
//有姓名,年龄,邮箱,家庭住址,期望工资,请把这些信息在控制台输出。
string name3 = "韬老狮";
string age2 = "18";
string email = "tpaneme@163.com";
string address = "火星深处——广州";
string money = "9999999999";
cout << "姓名:" + name3 << endl << "年龄:" + age2 << endl << "邮箱:" + email + "\n" +
"家庭住址:" + address << "\n" << "期望薪资:" + money + "\n";
//姓名:韬老狮
//年龄:18
//邮箱:tpaneme@163.com
//家庭住址:火星深处——广州
//期望薪资:9999999999
#pragma endregion
#pragma region 练习题四
/*请用户输入用户名、年龄、班级,最后一起打印出来
最终打印结果的格式为:
用户名:***
年龄:**
班级:***/
cout << "请输入你的用户名" << endl;
string name4;
cin >> name4;
cout << "请输入你的年龄" << endl;
string age3;
cin >> age3;
cout << "请输入你的班级" << endl;
string classStr;
cin >> classStr;
cout << "用户名:" + name4 << endl << "年龄:" + age3 + "\n" + "班级:" + classStr << endl;
#pragma endregion
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com