C++字符串:使用 std::string
C++字符串:使用 std::string
初始化方法一
std::string 变量名称 { “字符串”};
std::string str { " 这是一个字符串" };std::cout << str;
std::cin >> str;
初始化方法二
std::string 变量名称 { “字符串”, 要截取的长度};
std::string str2 { "abcde", 3};
std::cout << str2 << std::endl; // abc
std::string str3 { "这是一个字符串", 4};
std::cout << str3 << std::endl; // 这是
注意:截取的数据代表字节数,一个汉字是两个字节。
初始化方法三
std::string 变量名称 { “字符串”,起始位置, 要截取的长度};
std::string str4 { "abcde", 1, 3};
std::cout << str4 << std::endl; // bcd
注意:截取的数据代表字节数,一个汉字是两个字节。
初始化方法四
std::string 变量名称 (要复制的个数,‘字符’);
std::string str5 {6, 'a'};
无论是处理文本输入,还是执行拼接等字符串操作,使用 C++标准字符串都是更高效、更安全的方式。不同于字符数组( C 风格字符串实现),std::string 是动态的,在需要存储更多数据时其容量将增大。
string类是basic_string类模板的实例化,该模板使用char作为其字符类型,并具有默认的char_traits和allocator类型。
以下示例程序演示了如何使用 std::string 来操作字符串数据:
#include <iostream>
#include <string>using namespace std;int main()
{string greetStrings ("Hello std::string!");cout << greetStrings << endl;cout << "Enter a line of text: " << endl;string firstLine;getline(cin, firstLine);cout << "Enter another: " << endl;string secondLine;getline(cin, secondLine);cout << "Result of concatenation: " << endl;string concatString = firstLine + " " + secondLine;cout << concatString << endl;cout << "Copy of concatenated string: " << endl;string aCopy;aCopy = concatString;cout << aCopy << endl;cout << "Length of concat string: " << concatString.length() << endl;return 0;
}
输出:
Hello std::string!
Enter a line of text:
I love
Enter another:
C++ strings
Result of concatenation:
I love C++ strings
Copy of concatenated string:
I love C++ strings
Length of concat string: 18
分析:
请尝试将输出与代码关联起来,现在暂时不要管其中的新语法。该程序首先显示一个字符串,该字符串在第 7 行被初始化为 “Hello std::string”。接下来,它让用户输入两行文本,并将它们分别存储在变量 firstLine 和 secondLine 中,如第 12 和 16 行所示。字符串拼接非常简单,看起来很像算术加法运算,如第 19 行所示。这里还在两行之间添加了一个空格。复制也很简单,只需赋值即可,如第 24
行所示。第 27 行对字符串调用 length( )
,以确定其长度。
注意:
要使用 C++字符串,需要包含头文件 string:
#include <string>
如示例程序的第 1 行所示。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器