C++ 字符串完全指南:学习基础知识到掌握高级应用技巧

小万哥
• 阅读 269

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,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

点赞
收藏
评论区
推荐文章
九路 九路
4年前
Go语言字符串和数值转换
一.字符串概述字符串是一段不可变的字符序列.内容是任意内容,可以是一段文字也可以是一串数字,但是字符串类型数字不能进行数学运算,必须转换成整型或浮点型字符串类型关键字:string创建字符串类型变量govarsstring"hello,world"s1:"hello,world"字符串类型的值使用双引号""扩上
Stella981 Stella981
3年前
C++中stoi函数
作用:  将n进制的字符串转化为十进制头文件:include<string用法:1stoi(字符串,起始位置,n进制),将n进制的字符串转化为十进制23示例:4stoi(str,0,2);//将字符串str从0位置开始到末尾的2
Wesley13 Wesley13
3年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Stella981 Stella981
3年前
JavaScript常用函数
1\.字符串长度截取functioncutstr(str,len){vartemp,icount0,patrn/^\x00\xff/,strre"";for(vari
Wesley13 Wesley13
3年前
Java基础之字符串
5.1字符字符指的用单引号括起来的单个字母。java中,char表示字符的数据类型。一个字符在内存中占16位大小的空间(2个字节)。5.2字符串字符串或串是由零个或多个字符组成的有限序列,它是编程语言表示文本的数据类型。串的两个最基本的存储方式是顺序存储方式和链接存储方式5.2.1字符串声明与赋值String是字符串变量的类型
Wesley13 Wesley13
3年前
10条PHP编程习惯助你找工作
http://blog.csdn.net/yihan1029/article/details/417664131、使用单引号括起来的字符串当使用双引号来括字符串时,PHP(https://www.oschina.net/p/php)解释器会对其进行变量替换、转义等操作,如“\\n”。如果只想输出一个基本的字符串,用单引号会节
小万哥 小万哥
4个月前
Kotlin 字符串教程:深入理解与使用技巧
Kotlin中的字符串用于存储文本,定义时使用双引号包围字符序列,如vargreeting&quot;Hello&quot;。Kotlin能自动推断变量类型,但在未初始化时需显式指定类型,如varname:String。可通过索引访问字符串元素,如txt0获取首字符。字符串作为对象,拥有属性和方法,如length获取长度,toUpperCase()转大写。可使用compareTo()比较字符串,indexOf()查找子串位置。字符串中嵌入单引号表示文本内的引号,如&quot;It&39;salright&quot;。使用或plus()
小万哥 小万哥
1年前
Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来。'hello'与"hello"是相同的。您可以使用print()函数显示字符串文字:示例:Pythonprint("Hello")print('Hello')将字符串分配给变量是通过变量名后跟等号和字符串
小万哥 小万哥
11个月前
C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合示例:csharp//创建一个string类型的变量并赋予一个值stringgreeting"Hello";如果需要,一个字符串变量可以包含多个单词:示例:csharpstringgreeting
小万哥 小万哥
10个月前
深入理解 Java 变量类型、声明及应用
Java变量变量是用于存储数据值的容器。在Java中,有不同类型的变量,例如:String存储文本,例如"你好"。字符串值用双引号引起来。int存储整数(全数字),没有小数,例如123或123。float存储浮点数,带有小数,例如19.99或19.99。c