• C++标准模板库(STL)之String


    1、String的常用用法

      在C语言中,使用字符数组char str[]来存字符串,字符数组操作比较麻烦,而且容易有''的问题,C++在STL中加入string类型,对字符串常用的需求功能进行封装。

      使用string,必须要加头文件#include<string>和using namespace std;

    注意:#include<string>和#include<string.h>的区别,#inlcude<string.h>是包含了字符串常用的函数,比如strcat,strcmp。#include<string.h>和#include<cstring>等价。

      1.1、string的定义

      定义string的方式和基本类型定义相同。

    string str;
    string str="abcd";

      1.2、string中的内容访问

      和vector一样,有两种方式:下标访问,迭代器访问

        1.2.1、下标访问

        可以如同字符数组一样去访问string

        1.2.2、迭代器访问

        string的迭代器不需要参数,直接定义string::iterator it;

    #include<stdio.h>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        string str="abcd";
        for(int i=0;i<str.length;i++)
        {
            printf("%c ",str[i]);//a b c d
        }
        
        //通过迭代器访问string内容
        for(string::iterator it=str.begin();it!=str.end();it++)
        {
            pritnf("%c ",*it);
        }
    
        return 0;
    View Code

      1.3、string常用函数

        1.3.1、+,+=,字符串拼接
        1.3.2、==,!=,<,<=,>=,>比较大小
        1.3.3、length()/size(),字符串长度
        1.3.4、insert()
        1.3.5、erase()
        1.3.6、clear()
        1.3.7、substr()
     
        1.3.8、replace()
    #include<stdio.h>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        string str="abcd";
        for(int i=0;i<str.length;i++)
        {
            printf("%c ",str[i]);//a b c d
        }
        
        //通过迭代器访问string内容
        for(string::iterator it=str.begin();it!=str.end();it++)
        {
            pritnf("%c ",*it);
        }
        string str1="xyz";
        string str2=str+str1;
        cout<<str2<<endl;//abcdxyz
        if(str<str1)printf("OK
    ");//字符串比较,首先比较长度,长度相同的进行字典序比较。
        printf("%d %d
    ",str.lenght(),str.size());//4,4//获取字符串的长度,大小
        cout<<str.insert(3,str1)<<endl;//往str[3]处插入xyz,输出abcxyzd;
        str.insert(str.begin()+3,str.begin(),str.end);
            str.substr(0,3);//substr(pos,len),从0开始,长度为3的子串
        return 0;
    }
    View Code
        1.3.9、string::npos

        string::npos是一个常数,本身值为-1,用来做find函数失配的返回值。

        1.3.10、find()   
    #include<stdio.h>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        string str="abcd";
        string str1="bc";
        if(str.find(str1)!=string::npos)
        {
            cout<<str.find(str1)<<endl;
        }
        if(str.find(str2,2)!=string::npos)
        {
            cout<<str.find(str2,2)<<endl;
        }
        else
        {
            cout<<"No Find"<<endl;
        }
        return 0;
    }
    View Code

    2018-09-25 16:15:15

    @author:Foreordination  

  • 相关阅读:
    thinkPHP 无法加载控制器:Hello
    在html中引用分享的链接
    div中iframe高度自适应问题
    php编写tcp服务器和客户端程序
    Maximum Subsequence Sum (25)——改进版
    水仙花数——升级版
    数据结构实验八——队列打印杨辉三角
    数据结构实验七——循环队列
    数据结构实验六——链队列
    水仙花数(20)
  • 原文地址:https://www.cnblogs.com/drq1/p/9699470.html
Copyright © 2020-2023  润新知