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 keyboard
cout << "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;
}