色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          C++/C中的字符串

          作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
          C++" target="_blank">C++++中的字符串因?yàn)橛辛藰?biāo)準(zhǔn)庫(kù)string的引入,使得字符串的處理也變得容易了,但是在也會(huì)導(dǎo)致一個(gè)新的問(wèn)題,在C語(yǔ)言中的一些字符串處理問(wèn)題也隨之而來(lái)啦。

          在C++中的字符串string與C語(yǔ)言中的字符串存在較大的區(qū)別,首先我們知道在C語(yǔ)言中字符串是字符串常量,是以null結(jié)尾的字符串,通常我們可以將字符串看做是一個(gè)以null字符結(jié)尾的字符數(shù)組,但是如前面的文章中已將分析了字符串和字符數(shù)組并不是等價(jià)的,而是存在一定的差別的。在C語(yǔ)言中字符串就是一個(gè)常量,是不能修改的,對(duì)字符串的修改都會(huì)導(dǎo)致意外的結(jié)果。

          但是有時(shí)候C++也要處理關(guān)于C語(yǔ)言的一些問(wèn)題,這時(shí)候我們需要采用cstring庫(kù),該庫(kù)與C語(yǔ)言中的string.h有很大的相似性,很多函數(shù)也是一致的。其中很多函數(shù)比如:strcat,strcpy,strncpy,strlen,strcmp等函數(shù)都存在的,這時(shí)候也是以null作為字符串的結(jié)尾符的。

          首先說(shuō)明一下C++中的字符串string,這時(shí)候的string與C語(yǔ)言中的字符串存在很大的差別,首先string是一個(gè)標(biāo)志庫(kù),是一種類(lèi)型,該類(lèi)型的變量是可以復(fù)制的,可以被修改的,也不是以null結(jié)尾的。而C語(yǔ)言中的字符串可以認(rèn)為是一個(gè)字符串字面值,是不能修改的。

          同樣在字符串長(zhǎng)度上也存在一定的差別,在string中采用該標(biāo)準(zhǔn)庫(kù)提高的size()函數(shù)確定字符串的長(zhǎng)度,而C語(yǔ)言中的字符串則需要采用sizeof或者strlen函數(shù)來(lái)判斷,通常strlen的值是不包含null的,但是sizeof是包含null的。

          在指針操作過(guò)程中存在一定的差別,在string中,string *類(lèi)型的指針指向一個(gè)string對(duì)象,而C語(yǔ)言中字符串的指針通常是把字符串當(dāng)做數(shù)組處理,這時(shí)候指針指向的字符串的首個(gè)元素。這些都是在C++中處理時(shí)應(yīng)該注意的問(wèn)題。

          正如在給C++初學(xué)者的50個(gè)建議中提到的,不要把C++當(dāng)做C的擴(kuò)展,而應(yīng)該當(dāng)做一種新的語(yǔ)言學(xué)習(xí),每一種語(yǔ)言有一種思想。


          關(guān)鍵詞: C++C字符

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉