wordpress 眾籌模板seo效果最好的是
愿我如星君如月,夜夜流光相皎潔。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——《車逍遙篇》【宋】范成大
目錄
正文:
主要特點:
基本操作:
?代碼演示:
總結(jié):
今天我們接著上次的章節(jié)繼續(xù),這次我們來說一個為解決上個方法的缺陷而誕生的方法string類。
C++字符串操作中的陷阱
正文:
我們先來看一看什么是C++,還有關于它的定義:
在C++中,string
是一個非常重要的類,用于處理文本數(shù)據(jù)。它是標準模板庫(Standard Template Library, STL)的一部分,定義在頭文件<string>
中。與C語言中的字符數(shù)組(如char[]
)相比,string
類提供了更豐富的功能和更高的安全性。
主要特點:
- 動態(tài)內(nèi)存管理:
string
類自動管理內(nèi)存,不需要手動分配和釋放內(nèi)存,減少了內(nèi)存泄漏的風險。 - 豐富的成員函數(shù):
string
類提供了大量的成員函數(shù)來執(zhí)行各種字符串操作,如連接、查找、比較、替換、插入和刪除等。 - 邊界檢查:與C語言中的字符數(shù)組相比,
string
類在訪問越界時會拋出異?;蚍祷劐e誤,提高了程序的安全性。(正好可以解決C語言中的字符數(shù)組帶來的缺陷)
基本操作:
- 當然在開始之前我們需要提前寫入這個類的頭文件:include<string>
- 定義字符串然后進行初始化。
- 同樣也可以賦值,添加元素到字符串中。
- 訪問字符串的元素,還可以對其進行修改。
- 比較字符串之間的大小,字符串的長度大小,然后輸出結(jié)果。(<? >? ?==? !=? >=? <=)。
- 拼接字符串或者拷貝字符串。
?代碼演示:
include<iostream>
using namespace std;
include<string>
include<string.h>
int main()
{
string n;
//三種初始化方式
string n="li hua";
string s("my name");
string s=string("name");
利用字符和計數(shù)來初始化x(輸出結(jié)果是 8個x)
string x('h',8);兩種求長度的結(jié)果是一樣的
cout<<n.size()<<endl;
cout<<n.length()<<endl;
設計的字符串的預存大小
cout<<n.capacity()<<endl;下面就是兩個字符數(shù)組的大小比較,之前講到的關系運算符都可以用
cout<<(n==s)<<endl;
cout<<(n<s)<<endl;
cout<<(n!=s)<,endl;轉(zhuǎn)換為C語言風格的字符串,利用c_str()的方式來轉(zhuǎn)換
const char*c_str1=n.c_str();
cout<<"轉(zhuǎn)換后的字符串"<<c_str<<endl;隨機訪問(獲取字符串中的某個元素)
string a="mine";
cout<<s[0]<<endl;//類似數(shù)組的訪問方式指定訪問:
char ch = n[0]; // 使用下標訪問,但注意越界
char firstChar = n.front(); // 獲取第一個字符
char lastChar = n.back(); // 獲取最后一個字符字符串拷貝
string s=n;直接鏈接兩個字符串字符串的拼接:
string b="is yours";
string c="peter";
string d=c+b;
c+=b;這一步和上面的那步相似,只不過是簡化的方式;而且完整的寫法是:c=c+b;這里省略了一步。 for(int i=0;i<n.size; i++)
{
cout<<n[i]<<endl;
}for(int i=0;i<d.size; i++)
{
cout<<n[i]<<endl;
}return 0;
}
總結(jié):
string結(jié)合了C++的新特性。
使用起來比原始的C語言的方法更加的安全和方便。
對比性能要求不高的程序可以使用。
新語言的分享:
然后我就要說一下最近關注到的新語言rust,這個語言目前是最有希望可以去達到C++成就的語言,因為這個語言在開發(fā)的時候就會避免C語言中經(jīng)常出現(xiàn)的一些安全型問題。
Rust 是一種系統(tǒng)編程語言,它注重安全性、速度和并發(fā)性。Rust 旨在提供與 C 和 C++ 相當?shù)男阅?#xff0c;同時確保內(nèi)存安全,這是通過所有權、借用和生命周期的概念來實現(xiàn)的。Rust 旨在提供零成本抽象,意味著在運行時使用 Rust 編寫的程序不會比使用傳統(tǒng)系統(tǒng)編程語言編寫的程序慢。
以下是 Rust 的一些關鍵特性:
- 所有權系統(tǒng):Rust 通過所有權系統(tǒng)管理內(nèi)存,不需要垃圾回收。每個值都有一個所有者,當所有者離開作用域時,其資源會被釋放。這個機制避免了內(nèi)存泄漏和其他常見的內(nèi)存錯誤。
- 借用:Rust 提供了借用的概念,允許你使用引用而不取得所有權。這樣,函數(shù)可以在不擁有數(shù)據(jù)的情況下讀取數(shù)據(jù)(不可變借用),或者同時讀寫數(shù)據(jù)(可變借用),但同時保證內(nèi)存安全。
- 并發(fā):Rust 的并發(fā)模型強調(diào)線程安全。Rust 的類型系統(tǒng)和所有權規(guī)則確保了數(shù)據(jù)競爭是不可能的,因此可以更輕松地編寫安全的并發(fā)代碼。
- 零成本抽象:Rust 在編譯時不增加任何運行時開銷。這意味著,開發(fā)者可以使用高級的抽象來編寫代碼,而不會影響性能。
- 包管理器和構建工具:Rust 有一個內(nèi)置的包管理器和構建系統(tǒng),名為 Cargo,它簡化了依賴管理和構建過程。
Rust 適合用在需要高性能和高并發(fā)的場合,例如開發(fā)操作系統(tǒng)、文件系統(tǒng)、游戲引擎、網(wǎng)絡服務器等。
?
🆗到這里,這篇關于:C++字符串中的string類操作就說完了,求一個免費的贊,感謝閱讀。