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,還有...