C 中,char是字串,還是字元陣列

2021-04-20 14:50:39 字數 3594 閱讀 1156

1樓:莊政警

c語言對字串的定義是:以0結尾的ascii字串行.

所以結尾有'\0'就叫字元內串,如果沒容有,就叫字元陣列char str[4]="abc"; //這句就是char str[4]=; 一回事

str以0結尾,所以str是個字串,當然也是字元數粗char str1[3]=;

str1不能叫字串,只能叫字元陣列

2樓:陽光的雷咩咩

那你學過c語言嗎,

你先說一下c語言裡

如果你回答不出來,那建議你的問題用c語言提,畢竟c語言用的人更多

c++中string和char定義的字串和字元陣列的區別,在用時是不是一樣的?

3樓:司馬刀劍

明確一下:

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

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

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

它們之間可以轉化

4樓:匿名使用者

不一樣的,string是乙個以上的char組成,最後一位還又字串結束符\n

string,可以儲存,單詞句子,

char只能儲存字母,字元等一位的符號

5樓:最大的_大寶寶

string是乙個類,乙個模板類,有些c++的書可能會介紹這個類,可以重點學一下

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

6樓:匿名使用者

明確一下:

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

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

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

它們之間可以轉化

7樓:匿名使用者

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

在資料結構的課程裡。

char型的陣列是這樣的:

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

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

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

8樓:匿名使用者

對於char陣列

:#include

int main()

執行結果:

wwwqqq

a=www

b=qqq

a大於b

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

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

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

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

9樓:匿名使用者

乙個是 's'

乙個是 "s"

就這點區別

10樓:圭帆召胤

都沒有說到重點,

char

是值型別!

string

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

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

c++中的char* 字元陣列 是不是就是等同於所謂的c字串?

11樓:匿名使用者

字串由字元組成,最後1位為'\0'

字元陣列是儲存字元的陣列,但最後1位不一定是'\0'

12樓:

char*既不是c的字元陣列,也不是c的字串,而是c的字元型指標!指標與陣列,操作起來常常有相似之處,就有不少人認為陣列與指標有什麼必然的聯絡。實際上它們並不相干,指標就是指標,陣列就是陣列。

13樓:匿名使用者

理論上來說乙個char字元陣列可以儲存乙個字串,其是以每個單元都有乙個字元組成,但在使用上不如string字串方便,所以個人還是推薦字串時使用string。

14樓:惟愛妳

是的。理論上來說是這樣的。

c++中字元陣列和字串有什麼區別,使用的時候,還有儲存什麼的。

15樓:

字元陣列 char a[100]; 可以隨便你對元素賦值常量字串 char* a = 'abcde'; 不能隨便賦值動態分配字串

char *a = malloc(100);

strncpy(a, 'abcd', 0);

拷貝了4個字元

16樓:

唯一的區別就是字串末尾有乙個'\0'作為結束標誌;字元陣列是沒有的.

簡單例子:

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

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

c++中 char*,char[],string三種型別的相同點和不同點

17樓:匿名使用者

char *p, 表示p是一

復個製指向字串的指標bai

char p, 表示p是乙個字串

的陣列,du在某些時候zhi,char p 和 char *p 是一樣的,但對於棧上的實dao例,例如 char *p1 = "12345"; char p2 = "12345"; 這個時候,sizeof(p1) ==4, strlen(p1) == 5, sizeof(p2) == 6, strlen(p2) == 5

string s, 表示s是乙個string類的物件,有它自己的成員變數和成員函式,具體的你可以查一下手冊。這個和前兩種區別比較大

這三個在c++裡面都可以表示乙個字串

18樓:哦公尺噶滴

string是c++標準庫定義的乙個類,本身提供了很多方便的函式和迭代器

char是c字串。

在寫程式回時3種都可以達到要求,

答但是由於string本身提供了很多函式和迭代器,所以通常能夠更方便的達到目標。

19樓:direct3d月夜風

char*佔4個位元組,是個只想char型別的指標,如果用char*定義的字串陣列會分配在常量區。專

char是個字元陣列,屬分配在棧上,

string是個以乙個char*為類的成員變數的字串類,其中提供了許多字串相關的操作介面。

20樓:佟彥明

char *p, 表示p是乙個指向字串的指標

char p, 表示p是乙個字串的陣列

string s, 表示s是乙個string類的物件

c語言字串中的空格算不算字元,C語言字串中的空格算不算乙個字元

baic語言規定,字串是用雙引號括 du起來的字串行zhi。由於空dao格也在字串中 在雙引號內 所以空格也算乙個字元。可以通過下面的程式段來驗證空格算不算乙個字元 char a abc efg printf d sizeof a 輸出8,6個字元 1個空格 1個字元結束標誌,sizeof函式是測試...

c語言中字串為什麼要有呢在字串中的

0 在字串中標誌著結尾 用來判斷這個字串已經結束 如果不新增 0 系統就在記憶體中一直向後讀,直到讀到 0 為止 這個情況就造成錯誤 乙個語句結束了,就用分號 表示結束啊 0 表示字串結束,乙個語句的結束是用乙個 號來表示的,如果是語句塊的話是用大括號來表示結束的。0在出入吸附石不會出現,輸出是也不...

C 字串長度與位元組的問題,C 字串有效長度的問題

1 strlen函式是返回字元長度 以空字元為結束符 所以是5 2 sizeof str 返回是指定變數占用空間大小str是指標變數,指標大小為4,所以返回4你可以把str變成陣列 char str 12345 此時str是陣列,所以sizeof str 返回的是6 strlen 函式返回不包含結束...