C語言 字串內容的修改

2021-10-05 16:11:21 字數 1006 閱讀 1594

關於:

# include

intmain()

>>

>

00bbf900

00bbf900

可見這樣定義的字串是可以直接在本體上修改其內容的,因為修改前後位址並沒有變化。

例2:定義乙個指標指向字串常量,然後嘗試修改字串的標點符號:

# include

intmain()

報錯:寫入訪問許可權衝突

先說結論:

解釋:

3)若程式試圖修改sp變數所指向的字串內容就會報錯,因為字串在常量儲存器,是唯讀的。

1)程式載入字串值,並存放到常量儲存區,常量儲存器的內容是唯讀的;

2)程式在棧上初始化乙個陣列(分配空間),並自動保證該陣列足夠大以容納字串;

3)程式將字串的內容複製到棧的陣列內。

這兩者的區別就在於:定義指標的方法僅僅是 讓指標指向了常量儲存器中的字串,而定義陣列的方法是 得到了常量儲存器中字串的副本,所以定義陣列的方法才可以修改字串。

關於 c 語言中儲存器的型別:

參考文章:c語言:儲存器的型別

對用定義指標指向字串的方法,補充一下指標sp裡存的是字串的位址,而字串本體只有乙個,就是常量區的字串。

# include

intmain()

>>

>

0097edbc

&sp:

00cff744

*

逆轉字串內容(C語言)

問題描述 有乙個字元陣列的內容為 student a am i 請你將陣列的內容改為 i am a student 要求 不能使用庫函式。只能開闢有限個空間 空間個數和字串的長度無關 student a am i i ma a tneduts i am a student 思路 對字串內容進行逆轉,...

C語言程式設計 C語言 判斷字串內容

判斷字串開頭是不是回車換行 n 或 r 如果不是返回0,如果是,返回有幾個這樣的字元。int isnewline char acstr return isize 判斷字串是不是空白字元 小於 大於 0 的字元 如果不是返回0,如果是,返回有幾個這樣的字元。int isspace char acstr...

字串內容

那麼,你是否知道字串也是物件,同樣具有方法。這些方法可以完成包括檢驗一部分字串和去除空格在內的各種工作。你在程式中使用的字串都是str類的物件 還真不知道字元是物件。usr bin python filename str methods.py name swaroop this is a strin...