C++標(biāo)準(zhǔn)庫
1.C++標(biāo)準(zhǔn)并不是C++語言的一部分
2.C++標(biāo)準(zhǔn)庫是由類庫和函數(shù)庫組成的集合
3.C++標(biāo)準(zhǔn)庫中定義的類和對象位于std命名空間中
4.C++標(biāo)準(zhǔn)庫的頭文件都不帶.h后綴
5.C++標(biāo)準(zhǔn)庫涵蓋了C庫的功能
C++編譯環(huán)境的組成
C++標(biāo)準(zhǔn)庫預(yù)定義了多數(shù)常用的數(shù)據(jù)結(jié)構(gòu)
代碼示例
Q:C語言存在的問題
1.C語言不支持真正意義上的字符串
2.C語言用字符數(shù)組和一組函數(shù)實(shí)現(xiàn)字符串操作
3.C語言不支持自定義類型,因此無法獲得字符串類型
解決方法
1.從C到C++的進(jìn)化過程引入了自定義類型
2.在C++中可以通過類完成字符串類型的定義
標(biāo)準(zhǔn)庫中的字符串類
1.C++語言直接支持C語言的所有概念
2.C++語言中沒有原生的字符串類型
3.C++標(biāo)準(zhǔn)庫提供了string類型(直接支持字符串連接,支持字符串的大小比較,支持子串查找和提取,支持字符串的插入和替換)
字符串按大小排列(按照字典)與一連串的排列代碼示例
#include
#include
using namespace std;
void string_sort(string a[], int len)//大小排列
{
for(int i=0; i a[j] )//字符串大小比較
{
swap(a[i], a[j]);
}
}
}
}
string string_add(string a[], int len)//添加
{
string ret = "";
for(int i=0; i
運(yùn)行結(jié)果如圖所示
1為大小排列的結(jié)果,2為一串排列的結(jié)果
題目分析:字符串循環(huán)右移
示例:abcdefg循環(huán)右移3位得到efgabcd
分析:1.先找到所需移位字符串的位置 2循環(huán)經(jīng)過一定的次數(shù)會(huì)重復(fù)
#include
#include
using namespace std;
string operator >> (const string& s, unsigned int n)
{
string ret = "";
unsigned int pos = 0;
n = n % s.length();//長度與循環(huán)次數(shù)取余
pos = s.length() - n;//確定循環(huán)的位置
ret = s.substr(pos);//找到位置
ret += s.substr(0, pos);//將循環(huán)位置的前面的字符串添加到該點(diǎn)后面
return ret;
}
int main()
{
string s = "abcdefg";
string r = (s >> 3);
cout << r << endl;
return 0;
}
運(yùn)行的結(jié)果如圖所示
小結(jié)
1.應(yīng)用開發(fā)中大多數(shù)的情況都在進(jìn)行字符串處理
2.C++中沒有直接原生的字符串類型
3.標(biāo)準(zhǔn)庫中通過string類支持字符串的概念
4.string類支持字符串和數(shù)字的相互轉(zhuǎn)換
5.string類的應(yīng)用使得問題的求解變得簡單
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。