C++ 字符串
C++ 字符串
字符串用于存储文本。
string 字符串变量包含由双引号包围的字符集合:
实例
创建一个 string 变量字符串类型并为其赋值:
string greeting = "Hello";
要使用字符串,必须在源代码中包含一个额外的头文件 <string> 库:
实例
#include <iostream>#include <string>using namespace std;int main() {string greeting = "Hello";cout << greeting;return 0;}
字符串串联
可以在字符串之间使用 + 运算符将它们相加,以生成新字符串。这叫做串联。
#include <iostream>#include <string>using namespace std;int main () {string firstName = "John ";string lastName = "Doe";string fullName = firstName + lastName;cout << fullName;return 0;}
在上面的实例中,我们在 firstName 之后添加了一个空格,以便在输出上在 John 和 Doe 之间创建一个空格。但是,也可以添加带引号的空格(" " 或 ' '):
#include <iostream>#include <string>using namespace std;int main () {string firstName = "John";string lastName = "Doe";string fullName = firstName + " " + lastName;cout << fullName;return 0;}
Append 方法
C++ 中的字符串实际上是一个对象,它包含可以在字符串上执行某些操作的函数。例如,还可以使用 append() 函数连接字符串。
#include <iostream>#include <string>using namespace std;int main () {string firstName = "John ";string lastName = "Doe";string fullName = firstName.append(lastName);cout << fullName;return 0;}
+ 还是 append() 取决于您。两者之间的主要区别在于 append() 函数的速度要快得多。然而,对于测试等,只使用 +,可能会更容易。数字和字符串相加
C++ 使用 + 运算符来进行加法和串联运算。
数字被执行加法。而字符串会被串联的。
如果你对两个数字使用 +,结果就是这两个数字执行加法的结果:
#include <iostream>using namespace std;int main () {int x = 10;int y = 20;int z = x + y;cout << z;return 0;}
如果两个字符串使用 +,结果将是字符串串联:
#include <iostream>#include <string>using namespace std;int main () {string x = "10";string y = "20";string z = x + y;cout << z;return 0;}
字符串长度
要获取字符串的长度,请使用 length() 函数:
#include <iostream>#include <string>using namespace std;int main() {string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";cout << "The length of the txt string is: " << txt.length();return 0;}
提示:您可能会看到一些使用 size() 函数获取字符串长度。它只是 length() 的别名。因此是使用 length() 还是 size() 完全由您决定。
#include <iostream>#include <string>using namespace std;int main() {string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";cout << "The length of the txt string is: " << txt.size();return 0;}
访问字符串
您可以通过引用方括号 [] 内的索引号来访问字符串中的字符。
本例打印 myString 中的 第一个 字符:
#include <iostream>#include <string>using namespace std;int main() {string myString = "Hello";cout << myString[0];return 0;}
本例打印 myString 中的 第二个 字符:
#include <iostream>#include <string>using namespace std;int main() {string myString = "Hello";cout << myString[1];return 0;}
修改字符串字符
要更改字符串中特定字符的值,请使用索引,并使用单引号:
#include <iostream>#include <string>using namespace std;int main() {string myString = "Hello";myString[0] = 'J';cout << myString;return 0;}
用户输入字符串
可以使用 cin 上的提取运算符 >> 来显示用户输入的字符串
string firstName;cout << "Type your first name: ";cin >> firstName; // get user input from the keyboardcout << "Your name is: " << firstName;// Type your first name: John// Your name is: John
但是,cin 将空格(空格、制表符等)视为终止字符,这意味着它只能显示一个单词(即使键入多个单词)
string fullName;cout << "Type your full name: ";cin >> fullName;cout << "Your name is: " << fullName;// Type your full name: John Doe// Your name is: John
从上面的例子中,您本来希望程序打印 "John Doe",但它只打印 "John"。
这就是为什么在处理字符串时,我们经常使用 getline() 函数来读取一行文本。它将 cin 作为第一个参数,字符串变量作为第二个参数:
#include <iostream>#include <string>using namespace std;int main() {string fullName;cout << "Type your full name: ";getline (cin, fullName);cout << "Your name is: " << fullName;return 0;}
字符串命名空间
您可能会看到一些 C++ 程序没有标准命名空间库。using namespace std 行可以省略,并替换为 std 关键字,后跟 string 字符串(和 cout)对象的 :: 运算符:
#include <iostream>#include <string>int main() {std::string greeting = "Hello";std::cout << greeting;return 0;}