簡體   English   中英

C字符串和C ++字符串有什么區別?

[英]What is the difference between the C string and C++ string?

我的意思是C和C ++中字符串的區別是什么?

C沒有定義string :它只有“完全普通的字符數組”和指向這些數組的指針;

C ++將其定義為具有多個屬性和方法的類類型。

在C中,沒有“字符串”這樣的東西/類型。 它表示為以NULL結尾的字符數組,例如char str[256]; C ++在標准庫中具有string類,該string類在內部將其維護為字符數組,並且具有許多操作它的方法和屬性。

我完全同意@pmg的答案。 但是需要提及一些事情。 在C語言中,程序員在使用C字符串時必須非常小心,因為a)每個C字符串必須以零代碼字符結尾; b)如果字符串的緩沖區大小太小,很容易使緩沖區溢出。 同樣在C語言中,所有與字符串一起使用的功能都要經過函數。 這可能是程序員的噩夢。 在C ++中,事情要簡單得多。 首先,您不需要關心內存管理。 當內部緩沖區變小時,字符串類分配額外的內存。 其次,您無需關心零終止字符。 您使用容器。 第三,有使用字符串類的簡單方法。 例如,用於字符串連接的重載運算符+。 不再有可怕的strcat()調用。 讓使用字符串的工作變得簡單!

在C ++中,字符串對象是一種特殊的容器,專門設計用於處理字符序列.string中定義的string類

或在C字符串中是一個以空字符('\\ 0')結尾的字符序列,所有與在string.h中定義的字符串有關的函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM