字串相關內容彙總

2021-09-30 15:48:23 字數 2096 閱讀 3283

c++ 提供了以下兩種型別的字串表示形式:

c 風格字串

實際上是使用null字元 '\0' 終止的一維字元陣列。

1strcpy(s1, s2);

複製字串 s2 到字串 s1。

2strcat(s1, s2);

連線字串 s2 到字串 s1 的末尾。

3strlen(s1);

返回字串 s1 的長度。

4strcmp(s1, s2);

如果 s1 和 s2 是相同的,則返回 0;如果 s1s2 則返回值大於 0。

5strchr(s1, ch);

返回乙個指標,指向字串 s1 中字元 ch 的第一次出現的位置。

6strstr(s1, s2);

返回乙個指標,指向字串 s1 中字串 s2 的第一次出現的位置。

這個用到的最多,其為c++標準庫提供,支援更多功能,他和前者比較起來,不必擔心記憶體是否足夠、字串長度等等,而且作為乙個泛型類出現,他整合的操作函式足以完成我們大多數情況下的需要,可以把它看成是c++的基本資料型別。

標頭檔案:#include

1. empty() // 若s為空串,則返回true,否則返回false;

2 . size()和length() //現有字元數;

3 . 賦值,第乙個賦值方法當然是使用操作符=;

還可以使用成員函式assign(),這個成員函式可以使你更靈活的對字串賦值:

s.assign(str); 

s.assign(str,1,3);//如果str是」iamangel」 就是把」ama」賦給字串

s.assign(str,2,string::npos);//把字串str從索引值2開始到結尾賦給s

s.assign(「gaint」); 

s.assign(「nico」,5);//把』n』 『i』 『c』 『o』 『\0』賦給字串

s.assign(5,』x』);//把五個x賦給字串

4 . 把字串清空的方法有三個:s=」」;s.clear();s.erase();

5.在string中間的某個位置插入字串,用insert()函式,這個函式需要你指定乙個安插位置的索引,被插入的字串將放在這個索引上。

str1.insert(0,"123abc");

str1.insert(1,"..");//1..23abc

這種形式的insert()函式不支援傳入單個字元,這時的單個字元必須寫成字串形式,為了插入單個字元,insert()函式提供了兩個對插入單個字元操作的過載函式:

insert(size_type index,size_type num,chart c)

和insert(iterator pos,size_type num,chart c)。

其中size_type是無符號整數,iterator是char*,

所以,你這麼呼叫insert函式是不行的:insert(0,1,』j』);這時候第乙個引數將轉換成哪乙個呢?

你必須這麼寫:insert((string::size_type)0,1,』j』)!

str1.insert((string::size_type)4, 1, ' ');

cout << str1 << endl;//1..2 3abc

刪除函式erase()

//從位置0開始替換2個字元為空字元

str1.replace(0, 2, " ");// .hu cheng ming yesterday once more

str1.replace(0, 3, "z");//zhu cheng ming yesterday once more

//從位置3開始以後的字元全刪掉

str1.erase(3);//zhu

//從位置0開始刪除3個字元

str1.erase(0, 3);//""//沒有了

字串相關內容

字串可以看作乙個陣列,它的每個元素是字元型的,注意每個字串末尾都有乙個字元 0 做結束符,這裡的 0是ascii碼的八進位制表示,也就是ascii碼為0的null字元,在c語言中這種字串也稱為以零結尾的字串。字元陣列,也可以用乙個字串字面值來初始化 char a hello 相當於char a 10...

ORACLE相關內容

1 em,dbca,netca,netmgr出現亂碼方案 cd oracle home jre lib mv font.properties font.properties.bak mv font.properties.zh font.properties em,dbca,netca,netmgr詳...

JVM相關內容

本地 native code 每個因素對記憶體占用的影響又會隨著應用程式 執行環境和系統平台的不同而變化,那怎樣計算總的記憶體佔用量?是的,想得到乙個準確的數字不是那麼容易,因為 你很難控制本地 native 部分。你能控制的部分只有堆大小 xmx,類占用的記憶體 xx maxpermsize,還有...