中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中string數據類型

發布時間:2020-07-04 21:14:35 來源:網絡 閱讀:806 作者:匯天下豪杰 欄目:編程語言

1、string

 string的初始化,在C++中字符串是一種數據類型;

(1)、string的初始化,遍歷,字符串連接

代碼如下:

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;

int main(void){  
//string的初始化,在C++中字符串是一種數據類型;
    string s1 = "abcdefg";
    string s2("abcdefg");
    string s3(s2);
    string s4 = s1;  //調用拷貝構造函數;
    string s5(10, 'a');//10個空間中的字符都是'a';
    s5 = s1; 

    cout<<"s3:"<<s3<<endl;
    cout<<"s5:"<<s5<<endl;

//string的遍歷,重載了[]操作符;
    //1、數組方式遍歷[]
    for(int i = 0; i < s1.length(); i++){
        cout<<s1[i]<<" ";  //出現錯誤(下標越界),不會向外面剖出異常,引起程序的中斷;
    }   
    cout<<endl;
    //2、迭代器
    string::iterator it; 
    for(it = s1.begin(); it != s1.end(); it++){
        cout<<*it<<" ";
    }
    cout<<endl;
    //3、函數at()遍歷
    for(int i = 0; i < s1.length(); i++){
        cout<<s1.at(i)<<" "; //會剖出異常,合理的解決下標越界;
    }
    cout<<endl;

//字符指針和string的轉換
    //此時,把s1====>char * 把內存首地址給露出來;
    printf("s1:%s \n", s1.c_str());

    //s1中的內容拷貝到buf中;
    char buf[123] = {0};
    s1.copy(buf, 2, 0);//n, pos;下標從0開始拷貝2個字符到buf中,不會是C風格的,注意自己加上0結束標志;
    cout<<buf<<endl;

//string子符串的連接
    s1 = s1 + s2; //直接+就表:字符串的連接;
    s1 += s2; //+=也是字符串的連接;

    s1.append(s4); //調用方法append()也是字符串的連接;

    cout<<s1<<endl;       

    return 0;
}

運行結果:

C++中string數據類型

(2)、string的查找,替換

代碼如下:

#include<iostream>
#include<string>
#include<string.h>
using namespace std;

int main(void){
//字符串的查找和替換
    string s1 = "wbm hello wbm 111 wbm 222 wbm 333";

    //1、第一次出現wbm的下標
    int index = s1.find("wbm", 0); 
    cout<<"index :"<<index<<endl;

    //2、求wbm每一次出現的數組下標
    
/*  int offindex = s1.find("wbm", 0);
    while(offindex != -1){
        cout<<"offindex :"<<offindex<<endl;
        offindex += strlen("wbm");
        offindex = s1.find("wbm", offindex);
    }*/

    //3、把小寫wbm換成大寫
    int offindex = s1.find("wbm", 0); 
    while(offindex != -1){
        cout<<"offindex :"<<offindex<<endl;
        s1.replace(offindex, strlen("wbm"), "WBM"); //從下標offindex開始,刪除n個字符,替換為后面的字符;
        offindex += strlen("wbm");
        offindex = s1.find("wbm", offindex);
    }
    cout<<"s1:"<<s1<<endl;

    string s3 = "aaa bbb ccc";
    s3.replace(0, 3, "AAA");  //替換的函數;
    cout<<"s3:"<<s3<<endl;

    return 0;
}

運行結果:

C++中string數據類型

(3)、區間的刪除和插入

代碼如下:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main(void){
//區間刪除和插入
    string s1 = "hello1 hello2 hell03";
    string::iterator it = find(s1.begin(), s1.end(), 'l');
    if(it != s1.end()){
        s1.erase(it); //刪除算法;
    }   
    cout<<"s1 :"<<s1<<endl;

    s1.erase(s1.begin(), s1.end()); //刪除從pos開始的n個字符;
    cout<<"s1全部刪除:"<<s1<<endl;
    cout<<"s1的長度:"<<s1.length()<<endl;

    string s2 = "BBB";
    s2.insert(0, "AAA");  //頭插法
    s2.insert(s2.length(), "CCC");//尾插法
    cout<<s2<<endl;


    return 0;
}

運行結果:

C++中string數據類型

(4)、string的大小寫轉換-->函數指針

代碼如下:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main(void){
    string s1 = "AAAbbb";

    transform(s1.begin(), s1.end(), s1.begin(), 0, toupper);//toupper可以是:函數的入口地址,函數對象,
    cout<<s1<<endl;

    string s2 = "AAAbbb";
    transform(s2.begin(), s2.end(), s2.begin(), 0, tolower);
    cout<<s2<<endl;

    return 0;
}





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河北区| 金乡县| 伊春市| 吉隆县| 娱乐| 商丘市| 资兴市| 铜山县| 长春市| 大荔县| 得荣县| 饶阳县| 西华县| 安化县| 图木舒克市| 子长县| 葫芦岛市| 陆良县| 顺平县| 青岛市| 永川市| 延庆县| 阿克苏市| 富裕县| 延吉市| 呈贡县| 江川县| 黔西县| 东安县| 蓝山县| 洞头县| 饶阳县| 营山县| 湖北省| 本溪市| 石阡县| 黄浦区| 固镇县| 温州市| 嵩明县| 承德县|