STL---string

Posted luojianyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL---string相关的知识,希望对你有一定的参考价值。

技术分享图片
#include<iostream>
#include<string>
using namespace std;

int main()
{
    //string构造函数
    string str1;
    cout << str1.c_str() << endl; //c_str 返回一个const char *的头指针

    string str2(5, a); //第一个参数是一个size_t 的类型,第二个参数是一个字符类型
    cout << str2.c_str() << endl; 

    string str3("luojianyi"); //第二种构造函数
    cout << str3.c_str() << endl;

    string str4("abcdefg", 3); //第一个参数是const char *的类型,然后第二个是取得第一个参数的前几个
    cout << str4.c_str() << endl;

    string str5(str3, 1, 5); //第一个参数是一个string类型,第二和第三个参数是一个范围
    cout << str5.c_str() << endl;

    string str6(str3); //拷贝构造函数
    cout << str6.c_str() << endl;

    //string 的重载运算符
    string str7;
    cin >> str7;
    cout << str7 << endl;
    cout << str7[3] << endl;
    cout << str7.at(3) << endl;

    return 0;
}
View Code
技术分享图片
#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str1(5, w);
    //指定下标的修改
    str1[1] = a;
    str1.at(2) = b;
    cout << str1.c_str() << endl;
    

    //中间插入
      //way 1
    string str2("abcdefg");
    string str3("lllll");
    str2.insert(2,str3); //在str2下标为2的地方插入str3
    cout << str2.c_str() << endl;

      //way 2
    string str4("abcdef");
    string str5("abcdefg");
    str4.insert(3, str5, 0, 2); //将str5的0  1 下标插入到str4的下标的3位置
    cout << str4.c_str() << endl;
      //way 3
    string str6("abcdef");
    str6.insert(3, 5, v);  //在str6下标为3的地方插入5个‘v’
    cout << str6.c_str() << endl;

    
    //尾巴插入
     //way 1 重载+=运算符
    string str7("aaaaa");
    string str8("bbbbb");
    str7 += str8;
    cout << str7.c_str() << endl;
    str7 += "ccccc";
    cout << str7.c_str() << endl;
     //append
    string str9("aaaaa");
    str9.append("bbbbb");
    cout << str9.c_str() << endl;
    //append 还有其他添加方式,需要的时候可以去查询

    //重新赋值
        // 重新 =
        // cin>>
        // 使用assign方法

    //eraser方法
    string str10("abcdefg");
    str10.erase(2, 3); //从下标为2的地方擦除3个元素
    cout << str10.c_str() << endl;

    return 0;
}
View Code
技术分享图片
#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str1("abc");
    string str2("abcd");
    //比较函数 重载运算符 
    cout << (str1 > str2) << endl; //这里使用运算符进行比较的时候需要加上括号
    //compare 函数
    cout << str1.compare(str2) << endl;

    //比较函数的定义
        //从两个字符串第一个开始按照ascii码进行比较
        //abc 和 abcd 前三个字符都是相等的,的那个比较第四个字符的时候,前面的字符串已经没有了,所以后面一个字符串大
        //abc 和 av  当比较到第二个字符的时候,v 大于 b 所以后面一个字符串大

    return 0;
}
View Code
技术分享图片
#include<iostream>
#include<string>
using namespace std;

int main()
{
    //查找
    string str1("abcdef");
    string str2("bc");
    cout << str1.find(str2, 0) << endl; //从str1的下标0开始寻找str2
    
    cout << str1.find(str2, 2) << endl; //从str1的下标2开始寻找str2
    cout << (int)str1.find(str2, 2) << endl; //将上面一条语句返回的结果强转为int


    //返回子串
    string str3("abcdefg");
    cout << str3.substr(2, 3) << endl; //从下标为2开始返回三个字符子串

    //交换
    string str4("abc");
    string str5("abcde");
    str5.swap(str4);
    cout << str4 << endl;
    cout << str5 << endl;


    return 0;
}
View Code

 

以上是关于STL---string的主要内容,如果未能解决你的问题,请参考以下文章

(C++基础_STL) —— string类的基本应用

(C++基础_STL) —— string类的基本应用

(C++基础_STL) —— string类的基本应用

(C++基础_STL) —— string类的基本应用

C++/STL1. string类

STL——string