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 函式返回不包含結束...