C語言字元陣列的一道題求解

時間 2022-10-02 03:45:05

1樓:黃孔雲

原因在與陣列r="abcde";表面上我們看上去它只有我個字元,其實不然,我們用sizeof(r)函式測試一下得出的結果卻是6!,這是因為像用這種型別來定義陣列,在陣列後面會自動加一個字元'\0',作為結束標誌,字串(就是字元陣列)沒有結束標誌是個很嚴重的問題,在使用不當的時候很可能導致資料溢位而產生記憶體崩潰,c語言為了減少這種錯誤就在其後面自動加了個『\0』。而strlen函式遇到'\0'就結束計數,所以這個答案是6。明白?

2樓:

strcpy 複製的時候,把 結束符號也複製過去了 最後變成 abcabc0de

長度就是6了

3樓:匿名使用者

strcpy(p+strlen(q),q);

這個函式是從你要複製的地方開始清楚原先的數值

4樓:匿名使用者

strcat(p,r):abcdabcde0(作用是r的字串接在p的後面

strcpy(p+strlen(q),q);就是p+3,從d開始往後複製(是覆蓋d的)前面3位是保留的,所以abcabc0,把q的最後一個'\0'也複製進去了。到此結束。要看結果的話,在輸入一段輸出語句就可以了。

printf("%s", p);

求解一道c語言題

只為醍醐灌頂說的是對,你給的答案是錯的,正確應該是8,8,10。這裡是考的指標的移動。難點是 p2 p1 5 這裡的操作是,取出p1所指的值10減去5,p1向後移動1 即現在指向a 1 得數5賦值給p2所指的地址 即a 2 5 p2向前移動1 即p2指向a 1 輸出時 p2 p1 5 0040104...

C語言積極求解,一道C語言程式設計題求解

1.若以下選項中的變數已正確定義,則正確的賦值語句是 a x1 26.8 3 b 1 2 x2 c x3 0x12 d x4 1 2 3 2.下面給出的識別符號中,能作為變數名的是 d a for b 123 c int d a b 中間一橫線在下面 3.c語言中,運算物件必須是整形數的運算是 c ...

兩道C語言程式題求解,一道C語言程式題求解

時辰八點半 2 不採用函式就原始暴力地從頭開始逐個遍歷字串。對原始陣列個數從0索引到最後一個字元使用迴圈 當字元在 a z 或者在 a z 中時將該字元存到另一個定義了空間大小的字元陣列中並使該字元陣列索引 1,直到最後給該新得到的陣列新增結束符 0 並輸出即可 3 一樣從頭開始遍歷陣列,噹噹前字元...