我們才開始接觸用C語言來處理字符串的時候,肯定會覺得怎么會如此麻煩呢?今天,小編就給大家總結出這方面的一些知識,C++中最高頻的字符串處理函數。
創新互聯服務項目包括城北網站建設、城北網站制作、城北網頁制作以及城北網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,城北網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到城北省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!首先要引入C++中的字符串頭文件:
#include
請注意,這里的頭文件是沒有.h的,否則就成了C語言中的頭文件了。
(1)創建字符串
創建字符串有好幾種構造方式,最典型的方式就是使用復制構造函數,
string str("chenyufeng",3);
cout << str << endl;
cout 拷貝原先的字符串開頭處的3個字符最為最新的字符串。打印結果為che.
string str2("chenyufeng",2,3);
cout << str2 << endl;
cout 拷貝原先字符串index=2開始處的3個字符最為新的字符串。打印結果為eny。
// = :字符串賦值
str2 = "Robert";
cout << str2 << endl;
同樣也可以用直接賦值的方式為某個變量賦值字符串,使用”=“。打印結果為Robert.
(2)swap:交換兩個字符串的值
// swap:交換兩個字符串的值
string string1 = "chen";
string string2 = "yufeng";
swap(string1, string2);
cout << "string1 = " << string1 << ";string2 = " << string2 << endl;
打印結果就已經和原先的字符串的值交換了。
(3)+,append :添加字符串
// += ,append:在尾部添加字符串
string stringOrigin = "chen";
string stringAppend = "yufeng";
stringOrigin = stringOrigin + stringAppend;
cout << "stringOrigin = " << stringOrigin << endl;
stringOrigin.append("_OK");
cout << "stringOriginAppend = " << stringOrigin << endl;
注意,添加字符串操作是會修改原先的字符串的。可以直接使用+號進行字符串的添加,非常方便。
(4)insert:在指定位置插入字符串
// insert:在指定position插入字符串
string stringInsertOrigin = "chenyufeng";
stringInsertOrigin.insert(3, "__");
cout << "stringInsertOrigin = " << stringInsertOrigin << endl;
上述代碼可以在indx=3位置插入__下劃線,打印結果為 che__nyufeng.
(5)erase,clear刪除字符串
// erase: 刪除字符
string stringEraseOrigin = "chenyufeng";
stringEraseOrigin.erase();
cout << "stringEraseOrigin = " << stringEraseOrigin << endl;
// clear :刪除全部字符
string stringClearOrigin = "chenyufeng";
stringClearOrigin.clear();
cout << "stringClearOrigin = " << stringClearOrigin << endl;
上述操作其實都是把字符串清空了。
(6)replace:替換字符串
// replace: 替換字符串,某個pos位置開始的size個字符替換成后面的“”字符串
string stringReplaceOrigin = "chenyufeng";
stringReplaceOrigin.replace(3, 2, "66");
cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;
上述代碼把字符串從index=3開始的2個字符替換成”66“,打印結果為che66ufeng.
(7)==,, =: 比較字符串大小
C++中使用這種運算符對字符串進行操作,其實都是用了運算符重載。字符串比較大小是根據字母的字典序或者說是ASCII碼值按順序比較大小。直到比較出兩個字符串的不同字母或者比較到某個字符串的最后一位停止。
// ==,<,>,<=,>=:比較字符串
string stringLeft = "zhen";
string stringRight = "yufeng";
if (stringLeft == stringRight)
{
cout << "equal" << endl;
}
if (stringLeft != stringRight)
{
cout << "not equal" << endl;
}
if (stringLeft < stringRight)
{
cout << "stringLeft < stringRight" << endl;
}
if (stringLeft > stringRight)
{
cout << "stringLeft > stringRight" << endl;
}
(8)size,length:計算字符串長度
這里的計算字符串長度和C語言中不同,是不包括末尾的的,計算的是真實的長度。
// size(), length():計算字符串長度
string stringCount = "chenyufeng";
cout << "stringSize = " << stringCount.size() << endl;
cout << "stringLength = " << stringCount.length() << endl;
上述的打印結果都是10.
(9)empty:判斷字符串是否為空
// empty():判斷字符串是否為空
string stringIsEmpty = "";
string stringNotEmpty = "chen";
if (stringIsEmpty.empty())
{
cout << "stringIsEmpty == empty" << endl;
}
else
{
cout << "stringIsEmpty != empty" << endl;
}
if (stringNotEmpty.empty())
{
cout << "stringNotEmpty == empty" << endl;
}
else
{
cout << "stringNotEmpty != empty" << endl;
}
(10)字符串的輸入輸出流
// 輸入輸出stream
cout << "請輸入一個字符串"<
string stringInput;
cin >> stringInput;
cout << "stringInput = " << stringInput << endl;
字符串也可以類似于C++其他數據類型一樣使用輸入輸出流。可以使用回車鍵結束輸入流。
(11)max_size:字符串的大可容納量。
// max_size:
string stringMaxSize;
cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;
打印結果為:18446744073709551599 。表示該字符串可以容納這么多的字符數。
(12)[], at :元素存取與修改
// [],at() :元素存取
string stringAt = "chenyufeng";
cout << "stringAt[3] = " <
cout << "stringAt.at(3) = " << stringAt.at(3) << endl;
stringAt[3] = '6';
stringAt.at(5) = '9';
cout << "stringAt = " << stringAt << endl;
字符串可以和數組一樣進行操作,使用下標進行存取,并可以進行修改原字符串。
(13)compare:字符串的比較,返回0,1 ,-1。
// compare()
string stringCompare = "chenyufeng";
int aaa = stringCompare.compare("chen"); // > 0
int bbb = stringCompare.compare("chenyufeng"); // == 0
int ccc = stringCompare.compare("done"); // < 0
cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;
(14)substr:取子字符串
// substr
string stringSubstr = "chenyufeng";
// 從索引為4開始的3個字符
cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;
// 從索引為4開始的所有字符
cout << "stringSubstr.substr(4) = " <
// 整個字符
cout << "stringSubstr.substr() = " <
(15)find:查找某個字符
// find
string stringFind = "chenyufeng";
stringFind.find('n');
cout << "stringFind.find('n') = " << stringFind.find('n') << endl;
cout << "stringFind.find_first_of('e') = " << stringFind.find_first_of('e') << endl;
cout << "stringFind.find_last_of('e') = " << stringFind.find_last_of('e') << endl;
默認find函數是返回某個字符第一次出現的下標index。find_first_of和find_last_of則分別是第一次和最后一次出現某個字符的index。
上述15個C++中的字符串處理函數是最為常見的,當然其他還有不少,我會在在后續的使用中繼續補充。string其實也是STL中的一部分。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站欄目:C++教程:字符串的使用-創新互聯
當前網址:http://vcdvsql.cn/article8/cescip.html
成都網站建設公司_創新互聯,為您提供小程序開發、虛擬主機、Google、網站建設、微信公眾號、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯