您好,登錄后才能下訂單哦!
C++標準庫
1.C++標準并不是C++語言的一部分
2.C++標準庫是由類庫和函數庫組成的集合
3.C++標準庫中定義的類和對象位于std命名空間中
4.C++標準庫的頭文件都不帶.h后綴
5.C++標準庫涵蓋了C庫的功能
C++編譯環境的組成
C++標準庫預定義了多數常用的數據結構
代碼示例
Q:C語言存在的問題
1.C語言不支持真正意義上的字符串
2.C語言用字符數組和一組函數實現字符串操作
3.C語言不支持自定義類型,因此無法獲得字符串類型
解決方法
1.從C到C++的進化過程引入了自定義類型
2.在C++中可以通過類完成字符串類型的定義
標準庫中的字符串類
1.C++語言直接支持C語言的所有概念
2.C++語言中沒有原生的字符串類型
3.C++標準庫提供了string類型(直接支持字符串連接,支持字符串的大小比較,支持子串查找和提取,支持字符串的插入和替換)
字符串按大小排列(按照字典)與一連串的排列代碼示例
#include <iostream>
#include <string>
using namespace std;
void string_sort(string a[], int len)//大小排列
{
for(int i=0; i<len; i++)
{
for(int j=i; j<len; j++)
{
if( a[i] > a[j] )//字符串大小比較
{
swap(a[i], a[j]);
}
}
}
}
string string_add(string a[], int len)//添加
{
string ret = "";
for(int i=0; i<len; i++)
{
ret += a[i] + "; ";
}
return ret;
}
int main()
{
string sa[7] =
{
"Hello World",
"D.T.Software",
"C#",
"Java",
"C++",
"Python",
"TypeScript"
};
string_sort(sa, 7);
for(int i=0; i<7; i++)
{
cout << sa[i] << endl;
}
cout << endl;
cout << string_add(sa, 7) << endl;
return 0;
}
運行結果如圖所示
1為大小排列的結果,2為一串排列的結果
題目分析:字符串循環右移
示例:abcdefg循環右移3位得到efgabcd
分析:1.先找到所需移位字符串的位置 2循環經過一定的次數會重復
#include <iostream>
#include <string>
using namespace std;
string operator >> (const string& s, unsigned int n)
{
string ret = "";
unsigned int pos = 0;
n = n % s.length();//長度與循環次數取余
pos = s.length() - n;//確定循環的位置
ret = s.substr(pos);//找到位置
ret += s.substr(0, pos);//將循環位置的前面的字符串添加到該點后面
return ret;
}
int main()
{
string s = "abcdefg";
string r = (s >> 3);
cout << r << endl;
return 0;
}
運行的結果如圖所示
小結
1.應用開發中大多數的情況都在進行字符串處理
2.C++中沒有直接原生的字符串類型
3.標準庫中通過string類支持字符串的概念
4.string類支持字符串和數字的相互轉換
5.string類的應用使得問題的求解變得簡單
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。