zoukankan      html  css  js  c++  java
  • C++标准模板库(STL)之 string

    在C语言中,一般使用字符数组char str[]来存放字符串,但是使用字符数组有时会显得麻烦,C++在STL中加入了string类型,对字符串常用的需求功能进行了封装,使得操作起来更方便,且不易出错。

    如果需要使用string ,需要添加string头文件,即#include<string>  (注:string.h和string是不一样得头文件)

    一、string定义

      string str

      赋值:

      string  str=“abcd”

    二、string中内容的访问

    (1)通过下标访问

    #include<cstdio>
    #include<cstdlib>
    #include<string>
    using namespace std;
    int main(){
        string str="abcd";
        for(int i=0;i<str.length();i++){
            printf("%c",str[i]);
        }
        printf("
    ");
        return 0;
    }

    (2)通过迭代器访问

      当使用insert()和erase()时,需要用迭代器为参数

      定义:

    string::iterator it;

      访问:

    #include<cstdio>
    #include<cstdlib>
    #include<string>
    using namespace std;
    int main(){
        string str="abcde";
        string::iterator it;
        for(string::iterator it=str.begin();it!=str.end();it++){
            printf("%c",*it);
        }
        printf("
    ");
        return 0;
    }

      输出:
      abcde

    三、string常用函数

    (1)operator+=

      这是string的加法,可以将两个string直接拼接起来

    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    
    #include<string>
    using namespace std;
    int main(){
        string str1="abcde";
        string str2="xuy";
        string str3;
        str3=str1+str2;
        cout<<str3<<endl;
        printf("
    ");
        return 0;
    }

      输出:
      abcdexuy

    (2)compare operator

      两个string类型可以直接使用==,!=,<,<=,>,>=比较大小,比较规则是字典序

    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    
    #include<string>
    using namespace std;
    int main(){
        string str1="abcde";
        string str2="xuy";
        if(str1<str2){
            printf("str1<str2
    ");
        }
        else if(str1>str2){
            printf("str1>str2
    ");
        }
        else{
            printf("str1=str2
    ");
        }
    //    printf("
    ");
        return 0;
    }

      输出:
      str1<str2

    (3)length() / size()

      返回string的长度

    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    
    #include<string>
    using namespace std;
    int main(){
        string str1="abcde";
    //    string str2="xuy";
        printf("%d",str1.length());
        printf("
    ");
        return 0;
    }

      输出:
      5

    (4)insert()

      1.  insert(pos,string) 在pos位置插入string字符串

      2.  insert(it,t2,t3)  it为原字符串的欲插入位置,it2和it3为待插入字符串的首位迭代器,用来表示串[it2,it3)将被插入在it的位置上

    (5)erase()

      1.删除单个元素

        str.erase(it)用于删除单个元素,it为需要删除的元素的迭代器

      2.删除一个区间内的所有元素

        str.erase(first,last)  其中first和last分别为需要删除区间的起始迭代器和末尾迭代器的下一个地址,也即删除[first,last)

      (6)clear()

      clear()用以清空string中的数据

    (7)substr()

      substr(pos,len)返回从pos号位开始,长度为len的子串

    (8)string::npos

      是一个常数,值为-1

    (9)find()

      str.find(str2),当str2是str子串时,返回其在str中第一次出现的位置,如果str2不是str的子串,那么返回string:npos

      str.find(str2,pos) , 从str的pos号位开始匹配str2,返回值与上相同

    (10)replace()

      str.replace(pos,len,str2) 把str从pos号位开始,长度位len的子串替换为str2

      str.replace(it1,it2,it3) 把str的迭代器[it1,it2)范围的子串替换为str2

  • 相关阅读:
    有一天人人都会变成程序猿
    mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較
    做程序员的老婆应该注意的一些事情
    人类科技的发展为什么会是加速度的(TRIZ方法再推荐)
    Unity5.0 RPG角色扮演历险类游戏之 森林历险记
    linux目录对照命令——meld
    iOS --- [持续更新中] iOS移动开发中的优质资源
    【spring bean】spring中bean的懒加载和depends-on属性设置
    【spring bean】 spring中bean之间的引用以及内部bean
    【spring set注入 注入集合】 使用set注入的方式注入List集合和Map集合/将一个bean注入另一个Bean
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14324399.html
Copyright © 2011-2022 走看看