char a[]=”xyz”,b[]={‘x’,’y’,’z’};
3 回答
已采納

Chendroc
TA貢獻2條經(jīng)驗 獲得超0個贊
????????char?a[]?=?"xyz"; char?b1[]?=?{'x',?'y',?'z'}; char?b2[]?=?{'x',?'y',?'z',?'\0'}; cout?<<?strlen(a)?<<?endl; cout?<<?strlen(b1)?<<?endl; cout?<<?strlen(b2)?<<?endl; cout?<<?sizeof(a)/sizeof(a[0])?<<?endl; cout?<<?sizeof(b1)/sizeof(b1[0])?<<?endl; cout?<<?sizeof(b2)/sizeof(b2[0])?<<?endl;
因為系統(tǒng)只認'\0'為字符串的結(jié)束符,所以b1的那種寫法會造成系統(tǒng)認為你未完成輸入,所以會多給b1一些空間。
根據(jù)自己的需求選擇要用strlen或sizeof,字符串像b1那樣賦值要記得最后加個'\0'。

顧玌
TA貢獻4條經(jīng)驗 獲得超0個贊
分別可以用循環(huán),i累加,然后比較。char有個字符串長度的函數(shù)strlen,應(yīng)該也可以用,如果沒有規(guī)定長度的話,不過這個對字符數(shù)組不管用。
- 3 回答
- 0 關(guān)注
- 2310 瀏覽
添加回答
舉報
0/150
提交
取消