C++ 字符串
字符串用于存储文本。
一个字符串变量包含由双引号括起来的一组字符:
示例
创建一个 string 类型的变量并为其赋值:
string greeting = "Hello";
C++ 字符串连接
字符串连接可以使用 +
运算符来实现,生成一个新的字符串。
示例:
string firstName = "John ";
string lastName = "Doe";
string fullName = firstName + lastName;
cout << fullName;
在上面的示例中,我们在 firstName
后面添加了一个空格,以便在输出时在 “John” 和 “Doe” 之间生成一个空格。然而,你也可以用引号(" "
或 ' '
) 来添加一个空格:
示例:
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName;
cout << fullName;
追加:
在 C++ 中,字符串实际上是一个对象,其中包含可以对字符串执行某些操作的函数。例如,你也可以使用 append()
函数连接字符串:
示例:
string firstName = "John ";
string lastName = "Doe";
string fullName = firstName.append(lastName);
cout << fullName;
C++ 数字和字符串
将数字和字符串相加
C++ 使用 +
运算符既用于加法又用于连接。
- 数字相加。字符串连接。
如果你将两个数字相加,结果将是一个数字:
示例:
int x = 10;
int y = 20;
int z = x + y; // z 将是 30(一个整数)
如果你将两个字符串相加,结果将是字符串连接:
示例:
string x = "10";
string y = "20";
string z = x + y; // z 将是 1020(一个字符串)
如果你尝试将一个数字添加到一个字符串中,将会出现错误:
示例:
string x = "10";
int y = 20;
string z = x + y;
C++ 字符串长度
要获取字符串的长度,可以使用 length() 函数:
示例
string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
cout << "txt 字符串的长度为: " << txt.length();
提示:你可能会看到一些 C++ 程序使用 size() 函数来获取字符串的长度。这只是 length() 的别名。完全取决于你是要使用 length() 还是 size():
示例
string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
cout << "txt 字符串的长度为: " << txt.size();
C++ 访问字符串
你可以通过在方括号 [] 内引用其索引号来访问字符串中的字符。
以下示例打印 myString 中的第一个字符:
示例
string myString = "Hello";
cout << myString[0];
// 输出 H
注意:字符串的索引从 0 开始:[0] 是第一个字符,[1] 是第二个字符,以此类推。
以下示例打印 myString 中的第二个字符:
示例
string myString = "Hello";
cout << myString[1];
// 输出 e
更改字符串字符
要更改字符串中特定字符的值,请引用索引号,并使用单引号:
示例
string myString = "Hello";
myString[0] = 'J';
cout << myString;
// 输出 Jello 而不是 Hello
C++ 特殊字符
因为字符串必须用引号括起来,C++会误解这个字符串,并生成一个错误:
string txt = "We are the so-called "Vikings" from the north.";
避免这个问题的解决方案是使用反斜杠转义字符。
反斜杠 () 转义字符将特殊字符转换为字符串字符:
转义字符 结果 描述
‘ ‘ 单引号
” ” 双引号
\ \ 反斜杠
序列 ” 在字符串中插入双引号:
string txt = "We are the so-called \"Vikings\" from the north.";
序列 ‘ 在字符串中插入单引号:
string txt = "It\'s alright.";
序列 \ 在字符串中插入单个反斜杠:
string txt = "The character \\ is called backslash.";
C++ 用户输入字符串
可以使用提取运算符 >> 在 cin 上存储用户输入的字符串:
string firstName;
cout << "Type your first name: ";
cin >> firstName; // 从键盘获取用户输入
cout << "Your name is: " << firstName;
// 输入你的名字: John
// 你的名字是: John
然而,cin 将空格(空白、制表符等)视为终止字符,这意味着它只能存储一个单词(即使你输入多个单词):
string fullName;
cout << "Type your full name: ";
cin >> fullName;
cout << "Your name is: " << fullName;
// 输入你的全名: John Doe
// 你的名字是: John
从上面的示例中,你会期望程序打印出 “John Doe”,但它只打印出 “John”。
这就是为什么在处理字符串时,我们经常使用 getline() 函数来读取一行文本。它以 cin 作为第一个参数,字符串变量作为第二个参数:
string fullName;
cout << "Type your full name: ";
getline(cin, fullName);
cout << "Your name is: " << fullName;
// 输入你的全名: John Doe
// 你的名字是: John Doe
C++ 字符串命名空间
你可能会看到一些 C++ 程序在没有标准命名空间库的情况下运行。可以省略 using namespace std
这一行,并将其替换为 std
关键字,后面跟着 ::
运算符用于 string
(和 cout
)对象:
例子
#include <iostream>
#include <string>
int main() {
std::string greeting = "Hello";
std::cout << greeting;
return 0;
}
你可以选择是否包含标准命名空间库。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容