91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時隨地免費學(xué)習(xí)課程

      當前位置:首頁  >  應(yīng)聘面試  >  物聯(lián)網(wǎng)面試題  > STL教程(三):C++ STL常用容器之string

      STL教程(三):C++ STL常用容器之string

      來源:千鋒教育
      發(fā)布人:syq
      時間: 2022-07-11 17:00:00 1657530000

        一、string本質(zhì)

        string是一個類,類似于java中的string類。利用string類可以定義其對應(yīng)的string對象。

        二、string產(chǎn)生原因

        C風(fēng)格字符串(以空字符結(jié)尾的字符數(shù)組)太過復(fù)雜難于掌握,不適合大程序的開發(fā),所以C++標準庫定義了一種string類,定義在頭文件。

        注意:

        ·要使用string類要引入庫

        ·string首字母s就是小寫,不要大寫,和java不一樣

        ·string封裝了很多實用的成員方法

        ·string封裝了char,管理這個字符串,是一個char型的容器。

        ·不用考慮內(nèi)存釋放和越界

        三、string容器的常用操作

        1、string構(gòu)造函數(shù)

      string();//創(chuàng)建一個空的字符串 例如: string str; string(const string& str);//使用一個string對象初始化另一個string對象 string(const char* s);//使用字符串s初始化 string(int n, char c);//使用n個字符c初始化

        2、string基本賦值操作

      string& operator=(const char* s);//char*類型字符串 賦值給當前的字符串

      string& operator=(const string &s);//把字符串s賦給當前的字符串

      string& operator=(char c);//字符賦值給當前的字符串

      string& assign(const char *s);//把字符串s賦給當前的字符串

      string& assign(const char *s, int n);//把字符串s的前n個字符賦給當前的字符串

      string& assign(const string &s);//把字符串s賦給當前字符串

      string& assign(int n, char c);//用n個字符c賦給當前字符串

      string& assign(const string &s, int start, int n);//將s從start開始n個字符賦值給字符 串

      案例:

      #include <iostream> #include <string> using namespace std; void test01() { 

      //string(const char* s);//使用字符串s初始化

      string str1("hello world"); 

      cout<<str1<<endl; 

       

      //string(int n, char c);//使用n個字符c初始化

      string str2(5,'a'); 

      cout<<str2<<endl; 

       

      //string& operator=(const char* s);//char*類型字符串 賦值給當前的字符串

      string str3; 

      str3 = "hello world"; 

       

      string str4; 

      str4 = str3; 

      string str5; 

      str5 ='H'; 

      cout<<str3<<endl; 

      cout<<str4<<endl; 

      cout<<str5<<endl; 

       

      string str6="hello wrold"; 

      string str7; 

      str7.assign(str6, 2, 3); 

      cout<<str7<<endl; 

      string str8; 

      str8.assign("world", 4);

      cout<<str8<<endl; }int main(){ 

      test01() ;

      return EXIT_SUCCESS; }

      4

        3、string存取字符操作

      char& operator[](int n);//通過[]方式取字符 char& at(int n);//通過at方法獲取字符

      案例:

      #include <iostream> #include <string> using namespace std; void test02() 

       { 

       string str1="hello world"; 

       cout<<str1[1]<<endl; 

       cout<<str1.at(1)<<endl; 

       

       str1[4]='H'; 

       str1.at(1)='E'; 

       cout<<str1<<endl; 

       

       //[] 訪問元素越界 不會拋出異常

       //at 訪問元素越界 會拋出異常

       try 

       { 

       //str1[1000]='H';

       str1.at(1000)='H'; 

       }

       catch(exception &e) 

       { 

      cout<<e.what()<<endl; 

       } 

       cout<<"結(jié)束了"<<endl; 

       }int main(){ 

      test02() ;

      return EXIT_SUCCESS; }

      5

        4、string拼接操作

      string& operator+=(const string& str);//重載+=操作符

      string& operator+=(const char* str);//重載+=操作符

      string& operator+=(const char c);//重載+=操作符

      string& append(const char *s);//把字符串s連接到當前字符串結(jié)尾

      string& append(const char *s, int n);//把字符串s的前n個字符連接到當前字符串結(jié)尾

      string& append(const string &s);//同operator+=()

      string& append(const string &s, int pos, int n);//把字符串s中從pos開始的n個字符連接到 當前字符串結(jié)尾

      string& append(int n, char c);//在當前字符串結(jié)尾添加n個字符c

        5、string查找和替換

      int find(const string& str, int pos = 0) const; //查找str第一次出現(xiàn)位置,從pos開始查找 int find(const char* s, int pos = 0) const; //查找s第一次出現(xiàn)位置,從pos開始查找 int find(const char* s, int pos, int n) const; //從pos位置查找s的前n個字符第一次位置 int find(const char c, int pos = 0) const; //查找字符c第一次出現(xiàn)位置 int rfind(const string& str, int pos = npos) const;//查找str最后一次位置,從pos開始查找int rfind(const char* s, int pos = npos) const;//查找s最后一次出現(xiàn)位置,從pos開始查找 int rfind(const char* s, int pos, int n) const;//從pos查找s的前n個字符最后一次位置 int rfind(const char c, int pos = 0) const; //查找字符c最后一次出現(xiàn)位置

      string& replace(int pos, int n, const string& str); //替換從pos開始n個字符為字符串

      str string& replace(int pos, int n, const char* s); //替換從pos開始的n個字符為字符串s

        6、string比較操作

      /*

      compare函數(shù)在>時返回 1,<時返回 -1,==時返回 0。

      比較區(qū)分大小寫,比較時參考字典順序,排越前面的越小。

      大寫的A比小寫的a小。

      */int compare(const string &s) const;//與字符串s比較 int compare(const char *s) const;//與字符串s比較

        7、string子串

      string substr(int pos = 0, int n = npos) const;//返回由pos開始的n個字符組成的字符串

        8、string插入和刪除操作

      string& insert(int pos, const char* s); //插入字符串

      string& insert(int pos, const string& str); //插入字符串

      string& insert(int pos, int n, char c);//在指定位置插入n個字符c

      string& erase(int pos, int n = npos);//刪除從Pos開始的n個字符

        9、string和c-style字符串轉(zhuǎn)換

      //string 轉(zhuǎn) char*

      string str = "itcast"; const char* cstr = str.c_str(); //char* 轉(zhuǎn) string char* s = "itcast";

      string str(s);

      案例:

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

       void test03() 

       { 

       string str1="hello"; 

       str1.insert(2,"haha");

       cout<<str1<<endl; 

       

       string str2="hello"; 

       str2.insert(2,3,'a'); 

       cout<<str2<<endl; 

       

       str2.erase(2,3); 

       cout<<str2<<endl; 

       cout<<str2.size()<<endl; 

       

       string str; 

       char *p = "hello"; 

       

       //char * 轉(zhuǎn) string (可以)

       str = p; 

       cout<<str<<endl; 

       

       string str5="hello"; 

       //string 轉(zhuǎn) char * (不可以)

       //const char *p1 = str5;//err

       const char *p1 = str5.c_str(); 

       cout<<p1<<endl; 

       }int main(){ 

      test03() ;

      return EXIT_SUCCESS; }

      6

       

        在c++中存在一個從const char到string的隱式類型轉(zhuǎn)換,卻不存在從一個string對象到C_string的自動類 型轉(zhuǎn)換。對于string類型的字符串,可以通過c_str()函數(shù)返回string對象對應(yīng)的C_string. 通常,程序員在整個程序中應(yīng)堅持使用string類對象,直到必須將內(nèi)容轉(zhuǎn)化為char時才將其轉(zhuǎn)換為C_string.

        提示:為了修改string字符串的內(nèi)容,下標操作符[]和at都會返回字符的引用。但當字符串的內(nèi)存被重新分配之后,可能發(fā)生錯誤。

        更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。

      tags:
      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT
      物聯(lián)網(wǎng)公司面試題:保障物聯(lián)網(wǎng)安全的措施有哪些?

      題目:請談?wù)勀鷮ξ锫?lián)網(wǎng)安全的理解,以及在物聯(lián)網(wǎng)系統(tǒng)中保障安全性的措施?;卮穑何锫?lián)網(wǎng)安全是指在物聯(lián)網(wǎng)系統(tǒng)中保護設(shè)備、數(shù)據(jù)和通信免受未經(jīng)授...詳情>>

      2023-07-26 11:59:27
      物聯(lián)網(wǎng)中的邊緣計算是什么?請解釋其優(yōu)勢和應(yīng)用場景

      答案:邊緣計算是一種將計算和數(shù)據(jù)處理能力移動到物聯(lián)網(wǎng)設(shè)備附近的計算模型。在邊緣計算中,數(shù)據(jù)的處理和分析發(fā)生在接近數(shù)據(jù)源的設(shè)備或邊緣節(jié)點...詳情>>

      2023-07-18 14:15:00
      可以介紹一下js的內(nèi)部Date對象功能嗎

      提供了操作時間和日期的方法擁有一系列屬性和方法,可以用來獲取系統(tǒng)當前時間或者設(shè)置 Date 對象中的時間 通過 getTime()方法可返回距 1970 年 ...詳情>>

      2023-01-21 15:51:32
      為什么需要三次握手,兩次不行嗎?

      弄清這個問題,我們需要先弄明白三次握手的目的是什么,能不能只用兩次握手來達到同樣的目的?!〉谝淮挝帐郑嚎蛻舳税l(fā)送網(wǎng)絡(luò)包,服務(wù)端收到了。...詳情>>

      2022-10-25 16:55:00
      什么是半連接隊列?

      服務(wù)器第一次收到客戶端的 SYN 之后,就會處于 SYN_RCVD 狀態(tài),此時雙方還沒有完全建立其連接,服務(wù)器會把此種狀態(tài)下請求連接放在一個隊列里,...詳情>>

      2022-10-25 16:55:00
      快速通道