今天就跟大家聊聊有關(guān)C++中C風(fēng)格字符串的基本概念是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、密山ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的密山網(wǎng)站制作公司
C++編程語言作為一款C語言的升級版本,支持C語言中的各種功能,有經(jīng)驗(yàn)的編程人員可以很輕松的上手這款語言。今天我們就為大家介紹C++中C風(fēng)格字符串的具體應(yīng)用,讓大家體驗(yàn)一下其中的C語言特點(diǎn)。
C++提供了兩種字符串的表示C風(fēng)格的字符串和標(biāo)準(zhǔn)。 C++引入的string 類類型一般我們建議使用string 類。但實(shí)際上在許多程序的情形中我們有必要理解和使用老式的C++中C風(fēng)格字符串。在第7 章我們會看到一個例子。它處理命令行選項(xiàng)而這些選項(xiàng)被作為C 風(fēng)格的字符串?dāng)?shù)組傳遞給main()函數(shù)
C 風(fēng)格的字符串起源于C 語言并在C++中繼續(xù)得到支持。實(shí)際上在標(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
指向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ù)運(yùn)算來遍歷C 風(fēng)格的字符串,每次指針增加1 直到到達(dá)終止空字符為止例如:
while ( *st++ ) { ... }
char*類型的指針被解除引用并且測試指向的字符是true 還是false 。true 值是除了空字符外的任意字符(空字符在判斷語句中被莫認(rèn)為是假),++是增加運(yùn)算符它使指針對指向數(shù)組中的下一個字符。一般來說當(dāng)我們使用一個指針時在解除指針的引用之前測試它是否指向某個對象是必要的,否則程序很可能會失敗例如:
int string_length( const char *st ) { int cnt = 0; if ( st ) while ( *st++ ) ++cnt; return cnt; }
看完上述內(nèi)容,你們對C++中C風(fēng)格字符串的基本概念是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。