C++編程語言作為一款C語言的升級版本,支持C語言中的各種功能,有經驗的編程人員可以很輕松的上手這款語言。今天我們就為大家介紹C++中C風格字符串的具體應用,讓大家體驗一下其中的C語言特點。
C++提供了兩種字符串的表示C風格的字符串和標准。 C++引入的string 類類型一般我們建議使用string 類。但實際上在許多程序的情形中我們有必要理解和使用老式的C++中C風格字符串。在第7 章我們會看到一個例子。它處理命令行選項而這些選項被作為C 風格的字符串數組傳遞給main()函數
C 風格的字符串起源於C 語言並在C++中繼續得到支持。實際上在標准C++之前除了第三方字符串庫類之外它是惟一一種被支持的字符串。字符串被存儲在一個字符數組中一般通過一個char*類型的指針來操縱它標准C 庫為操縱C++中C風格字符串提供了一組函數例如:
- // 返回字符串的長度
- int strlen( const char* );
- // 比較兩個字符串是否相等
- int strcmp( const char*, const char* );
- // 把第二個字符串拷貝到第一個字符串中
- char* strcpy(char*, const char* );
標准C 庫作為標准的C++的一部分被包含在其中為使用這些函數我們必須包含相關的C 頭文件
- #include <cstring>
指向C++中C風格字符串的字符指針總是指向一個相關聯的字符數組,即使當我們寫一個字符串常量時,如:
- const char *st = "The expense of spirit\n";
系統在內部也把字符串常量存儲在一個字符串數組中,然後st 指向該數組的第一個元素。那麼我們怎樣以字符串的形式來操縱st 呢?一般地我們用指針的算術運算來遍歷C 風格的字符串,每次指針增加1 直到到達終止空字符為止例如:
- while ( *st++ ) { ... }
char*類型的指針被解除引用並且測試指向的字符是true 還是false 。true 值是除了空字符外的任意字符空字符在判斷語句中被莫認為是假),++是增加運算符它使指針對指向數組中的下一個字符。一般來說當我們使用一個指針時在解除指針的引用之前測試它是否指向某個對象是必要的,否則程序很可能會失敗例如:
- int
- string_length( const char *st )
- {
- int cnt = 0;
- if ( st )
- while ( *st++ )
- ++cnt; return cnt;
- }
以上就是對C++中C風格字符串的相關介紹。