字串指標修改問題

2021-09-23 19:11:09 字數 527 閱讀 9542

字串的定義方式有兩種,直接先上**:

第一種:

char num[20] = "hello";

*num = '0'; //可行

num[1] = '0'; //可行

cout<

第二種:

char* num = "hello";

*num = '0'; //錯誤

num[1] = '0'; //錯誤

cout<

對於第一種方式:

char w = "hello";

"hello"儲存在棧空間陣列裡. 陣列名為w, 函式名為陣列的首位址.

可以通過w[i]='a', 或*(w+i)='a'的形式來修改陣列內容.

對於第二種方式:

char *m = "hello";

"hello"儲存在文字常量區,該資料不能修改,預設有唯讀屬性.

由指標m指向. 不能通過指標m來修改此值.

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...

修改字串

將給定字串中連續出現3次的小寫字母替換為改小寫字母在字母表中的下乙個字母 z變為a 大寫字母和其他字元不處理,仍然保留。要求最終輸出的字串中不再存在任何連續出現3次的小寫字母。例如字串 atrcccert893 45ae 經過處理後應該為 atrdert893 45ae int changestri...

修改字串

1.字串變數 char s hello world int main 2.不知道為什麼不輸出,因此嘗試以下 int main s是乙個指標,初始化化為指向乙個字串常量 由於這個常量所在的地方,所以實際上s是const char s,但是由於歷史的原因,編譯器接受不帶const的寫法 但是試圖對s所指...