C++中string用法详解

0. string的类型

std::string实际是类型为basic_string模板类的实例化:

typedef basic_string<char> string;

了解更多basic_string的内容可以参考:http://www.cplusplus.com/reference/string/basic_string/

1. string的初始化

可以通过string的默认构造函数/构造函数/复制构造函数/赋值运算符对一个string变量进行初始化:

#include <iostream>
#include <string>
int main()
{
    std::string str1; //默认构造函数
    std::string str2("test string 2"); // 构造函数
    std::string str3(str2);  // 复制构造函数
    std::string str4(10, 'a'); // 构造函数
    std::string str5 = str4;  // 赋值运算符
    std::string str6 = "test string 6"; // 另一种复制运算符
    
    std::cout << "str1=" << str1 << std::endl;
    std::cout << "str2=" << str2 << std::endl;
    std::cout << "str3=" << str3 << std::endl;
    std::cout << "str4=" << str4 << std::endl;
    std::cout << "str5=" << str5 << std::endl;
    std::cout << "str6=" << str6 << std::endl;
  
    return 0;
}

输出结果为:

str1=
str2=test string 2
str3=test string 2
str4=aaaaaaaaaa
str5=aaaaaaaaaa
str6=test string 6

2 string的操作符

string支持+, +=, [],以及重定向>>, << 运算符
具体看下面的代码:

#include <iostream>
#include <string>

int main()
{
    std::string str1("abc");
    std::string str2("def");
    std::string str3 = str1 + str2 + "gh"; // 直接相加
    
    char firstChar = str1[0];
    str2 += str3;
    std::string str4;
    std::cin >>  str4; // 注意输入以空格结束
    
    std::cout << "first char in str1:" << firstChar << std::endl;
    std::cout << "str3 = " << str3 << std::endl;
    std::cout << "str4 = " << str4 << std::endl;;

    return 0;
}

输出结果如下:

Please input str4:This is str4.
first char in str1:a
str3 = abcdefgh
str4 = This # 空格后的内容没有被str4接收

上述代码中,如果需要将一整行的输入内容赋值给str4,应该使用如下代码:

getline(std::cin, str4);

3 string的函数

 

待续。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

99 − = 93