<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C++/C中的字符串

          C++/C中的字符串

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          C++" target="_blank">C++++中的字符串因為有了標準庫string的引入,使得字符串的處理也變得容易了,但是在也會導致一個新的問題,在C語言中的一些字符串處理問題也隨之而來啦。

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

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

          首先說明一下C++中的字符串string,這時候的string與C語言中的字符串存在很大的差別,首先string是一個標志庫,是一種類型,該類型的變量是可以復制的,可以被修改的,也不是以null結(jié)尾的。而C語言中的字符串可以認為是一個字符串字面值,是不能修改的。

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

          在指針操作過程中存在一定的差別,在string中,string *類型的指針指向一個string對象,而C語言中字符串的指針通常是把字符串當做數(shù)組處理,這時候指針指向的字符串的首個元素。這些都是在C++中處理時應該注意的問題。

          正如在給C++初學者的50個建議中提到的,不要把C++當做C的擴展,而應該當做一種新的語言學習,每一種語言有一種思想。


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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();