字串操作

2021-04-28 20:55:55 字數 1819 閱讀 3794

字串操作

要了解字串操作首先要了解什麼是字串。前面已經提過,字串是乙個由零個或者多個字元組成的有限序列,既然是有限的那麼也就意味著字串存在乙個起始位置和乙個結束位置。我們以指定起始位置的方式來通知程式從該位置起向後的一段記憶體空間的內容應該解釋為字串。那麼這個字串在什麼地方結束呢?規定當遇到字元「/0」(即ascii表中的第乙個字元)時字串結束。也就是說在字串的實際使用過程中,我們必須要做的是指定起始位置,而結束位置由系統根據字串結束規則去計算。到這裡相信很多讀者同時聯想到這樣乙個技巧,就是我們可以通過指定某個位元組的內容來控制字串的終止位置。

在unicode字符集中字串的結束符同樣也是要擴充套件為兩位,即「/0/0」。

基於上面對於字符集的認識,為了簡化需求,僅考慮windows 2000以上的作業系統,因此本書所有例項均採用unicode字符集,從而保證程式在字符集處理方面有較好的可移植性。

基於此,本書直接介紹unicode相關的字串處理函式,ansi的字串處理函式讀者可以自行對比查詢。unicode標準公布後,c++隨之出現了一組相關的字串處理函式,這些函式多以wcs開頭,以便與原有的ansi的字串處理函式區別,這些函式包括:

•    wchar_t *wcscpy( wchar_t *strdestination, const wchar_t *strsource );

將字串strsource複製到字串陣列strdestination中,返回strdestination的值。

•    wchar_t *wcsncpy( wchar_t *strdest, const wchar_t *strsource, size_t count );

將字串strsource中最多count個字元複製到字串陣列strdest中,返回strdest的值。

•    wchar_t *wcscat( wchar_t *strdestination, const wchar_t *strsource );

將字串strsource新增到字串strdest的後面,返回strdest的值。

•    wchar_t *wcsncat( wchar_t *strdest, const wchar_t *strsource, size_t count );

將字串strsource中最多count個字元新增到字串strdest的後面,返回strdest的值。

•    int wcscmp( const wchar_t *string1, const wchar_t *string2 );

比較字串string1和字串string2。函式在string1等於、小於或大於string2時分別返回0、小於0或者大於0的值。

•    int wcsncmp( const wchar_t *string1, const wchar_t *string2, size_t count );

比較字串string1和字串string2中的前count個字元。函式在string1的子字串等於、小於或大於string2的子字串時分別返回0、小於0或者大於0的值。

•    wchar_t *wcstok( wchar_t *strtoken, const wchar_t *strdelimit );

用一系列wcstok呼叫將strtoken字串標記化(將字串分成各個邏輯元件,如同一行文字中的每個單詞),用字串strdelimit所包含的字元分隔。首次呼叫時包含strtoken為第乙個引數,後面呼叫時繼續標記化同一字串,包含null為第乙個引數。每次呼叫時返回當前標記指標。如果函式呼叫時不再有更多標記,則返回null。

•    size_t wcslen( const wchar_t *str );

確定字串長度,返回null終止符之前的字元數。

字串操作 靠字串分割字串

字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...

字串操作

include using namespace std int strlength char str char strcopy char str1,char str2 char strlink char str1,char str2 int main char strcopy char str1,c...

字串操作

include include include include include using namespace std 1.翻轉句子中的單詞 題目 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a ...