C 中string用法解讀

2022-09-09 16:24:26 字數 1987 閱讀 9173

c++中string用法解讀

1、函式find

函式find返回查詢字串的起始位置,注意這裡的位置基準是從0開始。

例如:

string s1="abstract";

cout《如果沒找到這個字串,則返回值為npos

例如:string s="abstract";

cout<2、函式erase

s.erase(i,j),裡面引數i,j分別表示刪除s中第i個元素後j個元素

例如:string s="abstract";

s.erase(0,1);//刪除第零個元素

s.erase(0,2);//刪除第零個和第乙個元素

3、函式sort

使用之前呼叫庫algorithm

1、呼叫對string中的元素進行排序

#includestring s="angoang";

sort(s.begin(),s.end());//將字串s整個進行排序

sort(s.begin()+i,s.end()+j);//將第i到第j個元素進行排序

2、呼叫對陣列中的元素進行排序
#includeint array=;

sort(array+i,array+j);//將陣列中從i到j的元素進行排序

//注意當i不取任何值時,預設為1,也就是說如果陣列元素個數為10個,那麼將整個陣列進行排序寫法如下

sort(array,array+10);//

3、呼叫對結構體

這裡直接貼段**,自己琢磨去吧

#include#include#includeusing namespace std;

typedef struct studentstudent;

bool cmp(student a,student b);

main()

4、牛客例題

題目描述:多多君最近在研究字串之間的變換,可以對字串進行若干次變換操作:

交換任意兩個相鄰的字元,代價為0。

將任意乙個字元a修改成字元b,代價為 |a - b|(絕對值)。

現在有兩個長度相同的字串x和y,多多君想知道,如果要將x和y變成兩個一樣的字串,需要的最少的代價之和是多少。

解題思路:首先根據條件1,我們知道兩個字串中相同的字元可以直接將距離設為零,並且不參與到後續計算中,等價於將這兩個數分別從字串中抹除掉。故首先第一步縮小字串大小,其方法就是將兩個字串中相同的字元各自刪除掉。通過迴圈遍歷可以很快實現。

其次,剩下的字串中都是不相同的字元。這時要進行統計了,計算距離最小,那麼就需要進行做差並求和。但是做差要得到最小的值。我們這裡提供兩種思路,其一將兩個串各字元相加後再做減法,其二將兩個字串對應位置的字元做減法取絕對值然後相加。對於這兩種方式我們舉個例子。

a= b=.這兩個陣列,用第一種求和後相減我們得到結果為7-9=2.我們用第二種方法得到的結果為abs(1-7)+abs(6-2)=10。顯然和結果不對應。那是不是就說明第一種方法就是對的呢?這裡我們將陣列b修改為b=。我們按照i方法一計算得到結果為7-7=0…但是正確答案應該是1+1呀,那麼問題出在哪兒呢?應為我們將陣列各個數求和後相減等價於求得不是絕對值的和而是差的和的絕對值。這顯然是不等價的。所以正確的做法為將a,b陣列進行排序,然後逐個做差累加求和。所以這裡還需要進行一次排序操作。在字串中排序最好的方式就是使用函式sort

這裡貼上**:

#include#include#include#includeusing namespace std;

int findmin(string s1, string s2)

}//cout << s1 << endl << s2<> n;

string s1, s2;

cin >> s1;

cin >> s2;

cout << findmin(s1, s2);

return 0;

}

喜歡的話點個贊吧!

C 中string為空 詳細解讀

c 判斷字串為空 的 方法們 按照效能排序 a.length 0 a string.empty a c 中大多數時候 和string.empty可以相互使用,但是string.empty效能更好,原因 分配乙個長度為0的儲存空間 string.empty 記憶體並沒有為字元分配空間。是否為空的最佳方...

c 中的string用法

向string 的後面加字元或字串。比 push back 更靈活 1 向string 的後面加c string basic type ptr string s hello s hello const char c out there s hello out there 2 向string 的後面加...

c 中string的用法

c 中string的用法 string在c 中是作什麼用的阿?既有string str宣告變數的,也有string n,的,我是新手,謝謝了。之所以拋棄char 的字串而選用c 標準程式庫中的string類,是因為他和前者比較起來,不必 擔心記憶體是否足夠 字串長度等等,而且作為乙個類出現,他整合的...