C語言的字符串是由字符數(shù)組形式保存的,并約定'\0'(ascii碼值為0)作為字符串結(jié)束符。其長度為從字符串開始,到'\0'結(jié)束,所有字符的個(gè)數(shù),不包括'\0'本身。
目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、尋烏網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
要獲得字符串長度,有兩種方法可以使用,使用庫函數(shù)strlen()。strlen聲明在string.h中,原型為int strlen(char *str);功能為求str的長度,并返回。對于字符串str, 可以用代碼求長度。當(dāng)str[len]為0時(shí),退出循環(huán),退出后的len值就是str的長度。
拓展資料:使用strlen函數(shù),包含在頭文件string.h里,功能就是計(jì)算字符串s的(unsigned int型)不包括'\0'在內(nèi)的長度。
getchar()函數(shù)的原型是 int getchar( void )
返回值是整型的
功能是:從標(biāo)準(zhǔn)輸入中讀取一個(gè)字符,也就是鍵盤敲擊字符,只接收單個(gè)字符
可以用gets()函數(shù)來接收多個(gè)字符
這里的 s 接收的是該字符的ASCII碼,非長度。
如果從原基礎(chǔ)上改可以這樣
int i;
char s[20]; /*字符串需要長度*/
gets( s );
i = num( s );
int num( char *s ) /* 這里的指針 ,后面學(xué)得到*/
{
}
套上去就可以了
這個(gè)字符串長度為10個(gè)字符。
可以用strlen("ab'1'\\\12803")來求這個(gè)字符串的長度。
也可以用sizeof("ab'1'\\\12803")來求,但是這個(gè)求出的結(jié)果是多了一個(gè)字符串結(jié)束符\0。
可以試著輸出這個(gè)字符串看看是不是10個(gè)字符。
strlen()函數(shù)判斷的字符串長度是以\0為結(jié)尾作為標(biāo)志的。
當(dāng)char * m=new char[TOKEN_LENGTH]后,雖然為指針分配了地址,但是其指向的內(nèi)容未被初始化,所以m指向的內(nèi)容是未知的,可能在第24個(gè)字符的位置發(fā)現(xiàn)了\0所以strlen()顯示長度為24。
數(shù)據(jù)類型
字符串?dāng)?shù)據(jù)類型是建模在形式字符串的想法上的數(shù)據(jù)類型。字符串是幾乎在所有編程語言中可以實(shí)現(xiàn)的非常重要和有用的數(shù)據(jù)類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復(fù)合類型獲得。多數(shù)高級語言的語法允許通常用某種方式引用起來的字符串來表示字符串?dāng)?shù)據(jù)類型的實(shí)例;這種元字符串叫做“文本”或“字符串文本”。
以上內(nèi)容參考:百度百科-字符串