c++ STL string一些总结

字符串是常见的操作之一,熟练地运用一些常见的字符数组和字符串操作,有时能够大大提高效率。因此,简答学习了一下。其实,其本身也可以看做是容器。因此很多操作与一些STL的常见操作类似。主要通过程序实现的方式。具体可见代码。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
//读入
    string s;
    //cin >> s; 当用cin>>进行字符串的输入的时候,遇到空格的地方就停止字符串的读取输入
    //cin.get();
    getline(cin,s);//以回车分开
    cout << s << endl;
//赋值(略去一些append、assign)
    string str1;
    str1="yesterday once more";
    string str2 (str1,6);// = day once more
    string str3 (str1,6,3);//= day
    
    char ch[] = {"Roly-Poly"};
    string str4 = ch;
    string str5 (ch);
    string st6 (ch,4);//=Roly
    string str7 (10,'i'); // =iiiiiiiiiii
    string str8 (ch+5,ch+9); //Poly
    
    string str9;
    str9=str1+str3;
    
    str9.insert(6,"!!!");//从第6个位置插入!!!
    cout << str9 << endl;
    
    
    string::iterator it;
    for (it=str9.begin();it!=str9.end();++it)
        cout << * it;
    
    if (str1>str2)
        cout << "Yes" << endl;
    else
        cout << "No" <<endl;
    
//sort、find、replace、erase...
    sort(str9.begin(),str9.end());

    string::size_type position;
    position = str1.find("day");//find函数返回day在str1中第一次出现的下标位置

    string str10="zy01zy02zy03zyzyzy";
    position = str10.find("zy");
    if (position!=str10.npos)//如果没找到,返回npos,这是一个很大的值
    {
        cout << position << endl;
    }
    position = str1.find("day",7);//从str1的下标7开始,查找字符串day
    if (position!=str1.npos)//如果没找到,返回npos,这是一个很大的值
    {
        cout << position << endl;
    }
    
    
    position = 0;
    while ((position=str10.find("zy",position))!= str10.npos)
    {
        
        cout << position << endl;
        position++;
    }
    
    str4.swap(str5);//交换
    
    str10.replace(6,str1.length(),str1);
    
    cout << str10 << endl;
    
    str7.erase();//清空
    cout << str1 << endl;
    str1.erase(2,4);//删除从2开始,长度为4的字符串
    cout << str1 << endl;
    
    string str11 = "hi, this is Rachel Greeen";
    cout << str11 << endl;
    int k = str11.find_first_of("aeiou");//find_first_of 函数最容易出错的地方是和find函数搞混。它最大的区别就是如果在一个字符串str1中查找另一个字符串str2,如果str1中含有str2中的任何字符,则就会查找成功,而find则不同
    while (k!=string::npos)
    {
        str11[k]='*';
        k=str11.find_first_of("aeiou", k+1,3);//第三个参数代表aeiou的前3个字符,即不带上o
    }
    cout << str11 << endl;
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
StringC++ STL(标准模板库)中的一个类,用于表示和操作字符串。String 类提供了许多函数和操作符,使得处理字符串变得更加方便和高效。 要使用 string,需要包含头文件 `<string>`。以下是一些常见的 string 操作及示例: 1. 创建 string: ```cpp std::string myString; // 创建一个空的 string std::string myString = "Hello"; // 创建并初始化一个 string ``` 2. 获取 string 的长度: ```cpp int length = myString.length(); // 获取 string 的长度 ``` 3. 连接两个 string: ```cpp std::string str1 = "Hello"; std::string str2 = "World"; std::string result = str1 + str2; // 连接两个 string ``` 4. 访问和修改 string 的字符: ```cpp char ch = myString[0]; // 获取指定位置的字符 myString[0] = 'H'; // 修改指定位置的字符 ``` 5. 查找子字符串: ```cpp size_t found = myString.find("lo"); // 查找子字符串的位置 if (found != std::string::npos) { // 子字符串存在 } ``` 6. 截取子字符串: ```cpp std::string subString = myString.substr(3, 4); // 截取指定位置和长度的子字符串 ``` 7. 比较两个 string: ```cpp int compareResult = str1.compare(str2); // 比较两个 string 的大小 if (compareResult == 0) { // 两个 string 相等 } ``` 除了上述操作外,string 类还提供了许多其他功能,如插入、删除、替换、转换等。 使用 string 类可以更方便地处理字符串,同时避免了手动管理内存和处理字符数组的复杂性。 这只是 string 的一些基本用法,还有更多的功能和操作可以探索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值