99久久久精品免费观看国产,紧身短裙女教师波多野,正在播放暮町ゆう子在线观看,欧美激情综合色综合啪啪五月

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  物聯網面試題  > STL教程(三):C++ STL常用容器之string

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

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

  一、string本質

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

  二、string產生原因

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

  注意:

  ·要使用string類要引入庫

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

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

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

  ·不用考慮內存釋放和越界

  三、string容器的常用操作

  1、string構造函數

string();//創建一個空的字符串 例如: 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<<"結束了"<<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連接到當前字符串結尾

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

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

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

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

  5、string查找和替換

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

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函數在>時返回 1,<時返回 -1,==時返回 0。

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

大寫的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字符串轉換

//string 轉 char*

string str = "itcast"; const char* cstr = str.c_str(); //char* 轉 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 * 轉 string (可以)

 str = p; 

 cout<<str<<endl; 

 

 string str5="hello"; 

 //string 轉 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的隱式類型轉換,卻不存在從一個string對象到C_string的自動類 型轉換。對于string類型的字符串,可以通過c_str()函數返回string對象對應的C_string. 通常,程序員在整個程序中應堅持使用string類對象,直到必須將內容轉化為char時才將其轉換為C_string.

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

  更多關于物聯網培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 丁香六月婷婷精品免费观看| 引诱亲女乱小说| 伊人动漫| 无码日韩精品一区二区免费| 大伊香蕉精品一区视频在线| 男人边吃奶边做性视频| 黑人系列合集h| 波多野结衣家庭教师奇优| 2021国产麻豆剧传媒仙踪林| 草莓视频污污在线观看| 国产123区在线视频观看| 五月深爱网| 大雄的性生活| 日本三级高清| 山口珠理番号| 三级毛片大全| 人人爽天天碰天天躁夜夜躁| 女人张开腿日出白浆视频| 国产日韩欧美中文字幕| 五十路老熟道中出在线播放| 放进去岳就不挣扎了| 在线视频一二三区2021不卡| 无翼少无翼恶女漫画全彩app| 被夫上司强迫的女人在线中文| 黄色三级斤| 亚洲二区电影| 星空无限传媒在线观看| 波多野结衣电影一区二区| 免费看黄色a级片| 久久99国产精品久久99| 日本私人影院| 中国人观看的视频播放中文| 久久中文网中文字幕| 国产精品久久久久久搜索| 麻豆视传媒一区二区三区| 伊人久久大香线蕉久久婷婷| 晚上看b站直播软件| 三个黑人上我一个经过| 91成人影院| 中文字幕免费在线| 午夜阳光电影在线观看|