字串常見函式

2021-10-10 13:55:26 字數 2944 閱讀 2202

字串插入、刪除

用於反轉在[first,last)範圍內的順

(包括first指向的元素,不包括last指向的元素),

1.交換vector容器中元素順序

標頭檔案#includereverse(s.begin(),s.end());

//或者寫成

reverse(s.begin(),s.begin()+n);

2.交換string中元素順序

string s="hello,world";

reverse(s.begin(),s.end());

3.交換char中元素順序

char a[101]="hello,world";

reverse(a,a+strlen(a));

標頭檔案#include

(1)字串擷取函式,從下表i開始,擷取到長度為n的字串。形式

s.substr(i,n);
(2)

string sub1=s.substr(5);
表示從下標5開始一直到字串結束

(3)

string s1=s.substr();
s1擷取整個s函式

應用最長對稱子串

strstr(string1, string2)是檢視string2串是否是string1串的子串,如果是的話返回string2串在string1串中的第一zhi個字元位置處的指標,否則返回null。

ifs是乙個輸入流。dao象cin一樣,如cin>>str;

應用串的模式匹配

string s=「hello」;

(1)string s1=「ha」;

s.insert(1,s1);//s下標為1的字元前插入字串s1

輸出hahello

(2)char c=』+』;

s.insert(0,5,c);//在s串下標為4的字元o前插入3個字元c,輸出+++hello

(3) string str2=「hello」;

string s2=「weakhaha」;

s.insert(0,s2,1,3);//將字串s2從下標為1的e開始數3個字元,分別是eak,插入s串的下標為0的字元h前

輸出eakhello

應用團體程式設計天梯賽-練習集——l1-032 left-pad (20分)

string(n,『0』)輸出n個0字元

即從給定起始位置pos處開始刪除, 要刪除字元的長度為n

string s("abcdefg");

s.erase(s.begin(), s.end()); //可加減數字,如s.begin()+1

s.erase(0, s.length()); //數字只能跟數字,不能跟迭代器:s.erase(0, 1)

s.erase(s.begin() + 2); //這樣只刪除迭代器所在的字元

s.erase(14); //從位置14開始刪除到末尾

s.erase(); //全部刪除

字串複製函式

1、strcpy:將由source指標指示的c 字串(包括結尾字元)複製到destination指標指示的區域中。該函式不允許source和destination的區域有重疊,同時,為了避免溢位,destination區域應該至少和source區域一樣大。

2、strncpy:複製source的前num字元到destination。如果遇到null字元(』\0』),且還沒有到num個字元時,就用(num - n)(n是遇到null字元前已經有的非null字元個數)個null字元附加到destination。注意:並不是新增到destination的最後,而是緊跟著由source中複製而來的字元後面。下面舉例說明:

char des = 「hello,i am!」;

char source = 「abc\0def」;

strncpy(des,source,5);

此時,des區域是這樣的:a,b,c,\0,\0,i,空格,a,m,!

strncpy(des,source,5);

3、memcpy:將source區域的前num個字元複製到destination中。該函式不檢查null字元(即將null字元當作普通字元處理),意味著將複製num個字元才結束。該函式不會額外地引入null字元,即如果num個字元中沒有null字元,那麼destination中相應字串行中也沒有null字元。同strcpy的區別:允許將source中null字元後面的字元也複製到destination中,而strcpy和strncpy則不可以。

void *memcpy(void *destin, void source, unsigned n);

n: 要被複製的位元組數。source和destin都不一定是陣列,任意的可讀寫的空間均可。

標頭檔案#include (c語言)或者#include(c++)

strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。

如果要從陣列a複製k個元素到陣列b, 使用

memcpy(b,a,sizeof(int)*k);
如果需要把陣列a全部複製到陣列b

4、memmove:同memcpy完成同樣的功能,區別是,memmove允許destination和source的區域有重疊。而其他三個函式不允許。

sturpr()將字串轉換為大寫

strlwr()將字串轉換為小寫

若s1,s2兩個字串相等

char s1[10],s2[10];

strcmp(s1,s2)==0;

Python(字串常見函式)

字串常見函式 find find 從左側查詢第一次出現 的位置 下標位置 index s.find print index 5 index s.find 如果要查詢的字元沒有出現在字串中則返回 1 print index rfind right find index s.rfind g 返回的是從右...

常見string字串函式

常見string字串函式 1字串長度函式 len str1.length 用法 字串名.length 2字串連線 str str1 把字串str1連線到str後面 3字串比較函式 4字串提取函式 str2 str1.substr 將str1的值賦給str2,相當於str2 str1 str2 str...

常見C語言字串函式

額,據說,在面試的時候經常會出現要我們實現字串函式的題目,話還說這些題目其實很簡單,主要考的是面試者的 風格和考慮問題的嚴謹性。偶要是沒看到有些面試題目考這些字串函式,偶估計就不會用c語言去實現這些函式了,因為覺得,庫函式都已經有了幹嘛還要去寫呢?呵呵,後來,自己去試著寫庫函式,和網上的一些大牛寫的...