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














 
 
 