c中字串為什麼有兩種形式,c中字串為什麼有兩種形式?cstyle和string有什麼區別?

2021-03-04 06:08:14 字數 2215 閱讀 8751

1樓:匿名使用者

c-style 是乙個指標,或者char陣列,字串的末尾有\0字元

string是乙個stl中的類,用於處理字串,string有乙個方法可以返回乙個c-style指標

string中還包含了很多處理字串需要的方法,一般不最強最快效率的情況下用string不容易出錯

2樓:止語

c-style 是最原始的,位元組陣列,使用起來麻煩但是靈活,string 是包轉的類,使用起來簡單也教靈活。從記憶體空間來看,不管是字串,還是乙個整數陣列……,都是記憶體中的資料。

3樓:匿名使用者

c++中沒用string型別,而是有char陣列後加'\0'來表示陣列的,輸出%s表示輸出陣列而已。

c++中字元和字串的區別是什麼?

4樓:匿名使用者

字元是單個的,字串一般有多個,但也可以是單個,甚至可以是空的char c;

c='a';字元a,注意使用單引號

string c="abcd";

string c1="a";單個字元,但是雙引號char *s="abcd"

5樓:匿名使用者

字元只佔用乙個位元組的儲存空間,而字串至少要佔用2個位元組;表現形式上,字元是心''包圍起來的,而字串是心""包圍起來的.字串在儲存上是以空字元'\0'(asiic值為0)結尾的.

6樓:匿名使用者

c++中乙個字元只能儲存乙個ascll字元,而乙個字串則可以儲存多個ascll字元。比如char a="abc"錯誤的,char a="abc"則是正確的。

7樓:na年花開

c++沒有字串的定義

一般用字元陣列來定義

比如說char ch="abcd";

char ch='a';

自己看吧單雙引號的

8樓:酆令慧芒石

唯一的區別就是字串末尾有乙個'\0'

面字元陣列是沒有的.

char

ch1="hello";//該串有6個字元,5個可見字元,因為是串,所以末尾自動加上'\0';共六個

char

ch2=;//這樣寫就成了陣列.是確確實實的5個字元

c++中的char定義的陣列和string的字串有什麼區別啊?

9樓:匿名使用者

明確一下:

你說的char是c++的內建型別char麼你說的string是標準庫中定義的類麼

如果是的話,它兩的區別有:

char陣列僅僅是儲存字串用的,c庫中有一系列操作字串的函式string是類,它包含乙個可變長度的char陣列,封裝了常用的字串操作函式

它們之間可以轉化

10樓:匿名使用者

你問的陣列問題的話。不知道我的解釋你感覺怎麼樣。

在資料結構的課程裡。

char型的陣列是這樣的:

char[0] = 'a' char[1] = 'b'

而string[0] = "asdasdasd" string[1] = "asdasdasd"

這樣的解釋應該有助於你的理解

11樓:匿名使用者

對於char陣列

:#include

int main()

執行結果:

www**q

a=www

b=**q

a大於b

press any key to continue二者的區別在於:在char陣列中 輸入www回車,輸入**q回車 即可完成輸入,程式執行

在string物件中 輸入www回車,輸入**q回車,還要再輸入乙個回車才能完成輸入

回車傳送資料到程式中,getline替換回車為'\0' ,寫字串難道不是這樣嗎?

為什麼後者還要多輸入一次回車呢??

12樓:匿名使用者

乙個是 's'

乙個是 "s"

就這點區別

13樓:圭帆召胤

都沒有說到重點,

char

是值型別!

string

是引用型別!這個可是本質的區別。

string可以被例項化,而char不可以。

c 中字元陣列,如何轉成字串啊

如果你想把一個字串變成陣列,你只需要將字串初始化為陣列變數的值即可。例如 char c 10 this is 在c 裡字串在記憶體的儲存方式就是按字串陣列的形式儲存的,所以不用轉換!用cstring的getbuffer函式返回一個存放字元的頭指標,用一個char 來接受他,然後用下標操作就可以了。例...

c中如何判斷字串a中包含012345689數字

正規表示式吧 用字串操作函式也可以 string s abcd for i 0 i 9 j 也不知道對不對 可以用陣列 迴圈 字串操作函式 你是說字串a同時包含十個數字呢還是只是包含數字呢?是不是指包含0到9其中乙個或多個?c語言 int a 0,1,2,3,4,5,6,7,8,9 p a,i 0 ...

C字元陣列和字串陣列,在C中字元陣列和字串有什麼區別

實際上,字元陣列和普通陣列一樣,沒有本質區別。請大家注意陣列型別的含義 資料型別指的是陣列所包含的元素的型別,而不是陣列名的型別,陣列名永遠是乙個指標,指向第乙個元素的位址,即陣列首位址。字元陣列的每個元素都是char型別,整型陣列的每個元素都是int型別。scanf 和 printf 函式有一種格...