C++ STL string使用的简单整理

对C++ STL中的string的使用做了简单的整理。

  • 调用、初始化与赋值

    #include<string>
    #include<iostream>
    using namespace std;
    int main()
    {
        string s1 = "helloworld";
        string s2(s1); //s2是s1的副本
        string s3("value");
        string s4(string("str"));
        string s5;
        s5 = s4;
        string s6 = string("string");
        string s7;
        cin>>s7;
        string s8;
        getline(cin, s8);//读取一整行,包括空格,直到换行符停止
    }
    
  • string转化为char*

    const char* ptr1 = str.data()
    const char* ptr2 = str.c_str() 
    

    在C++98版本中,c_str()返回 const char* 类型,返回的字符串会以空字符结尾,data()返回 const char* 类型,返回的字符串不以空字符(null character)结尾;在C++11版本中,c_str()与data()用法相同。

  • 字符串长度

    str.length();
    str.size();
    
  • 字符串比较

    str.compare();//如果两个string对象相等,返回0
    
  • 判空

    str.empty();//若为空,返回1
    
  • 检索子字符串

    str.find(substr); //substr可为char*或者string类型
    

    可以指定查找的起始位置和长度:

    size t find (const string&str,size_t pos 0)const;
    size_t find (const char*s,size_t pos 0)const;
    size_t find (const char*s,size_t pos,size_t n)const;
    size_t find (char c,size_t pos 0)const;
    

    返回第一个匹配的第一个字符的位置。如果没有找到匹配,函数返回string::npos。

  • 插入字符串

    str1.insert(pos, str2);//在指定的pos位置插入字符串str2,str2可为char*和string
    
  • 字符串拼接

    可直接使用加号进行拼接

    str1 = str1+str2; 
    
  • 访问字符元素

    可以通过下标访问字符元素。

    string str = "Hello";
    string phrase = "world";
    
    string s = str + ','+ phrase+ '\n';
    cout << s ;
    

    可以使用迭代器:

    string s = "Hello world!";
    for (auto i = s.begin(); i != s.end(); i++){
    	cout << *i  << ",";
    }
    cout << endl;
    

    也可以使用基于范围的for语句:

    string str("some string");
    for (auto c : str)
    	cout << c << ",";
    cout << endl;*
    
  • 构造子字符串

    str.substr(pos,n)//从pos下标开始的n个字符
    
  • 删除字符

    str.erase(pos,n)//删除str从pos下标开始的n个字符
    

    也可以传入迭代器或是开始迭代器和结束迭代器位置。

  • 替代

    str1.replace(pos,n,str2)//删除str1从pos下标开始的n个字符,在该位置插入str2
    str1.replace(pos,n1,str2,n2)删除str1从pos下标开始的n1个字符,在该位置插入str2的前n2个字符
    
  • 数值与字符串的转换

    str = to_string(num);//转换数值为字符串
    

    字符串转换为数字有stoi,stol,stoll,stod等,分别对应整型、长整型、长长整型和双精度类型的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值