C語言中的字串問題

時間 2022-03-28 00:23:34

1樓:匿名使用者

老生常談的問題

char *ptr = "abcdefg"; //ptr指向乙個常量字串,這個字串的內容是不能修改的

*ptr = 't'; //這個操作是要修改它指向的字串的第乙個元素,是不可行的

--------------

char *ptr = "abcdefg";

ptr = "sdfsfsdfksdf「 //ptr指向另乙個地方了

這個關鍵要明白的是"abcdefg" ,"sdfsfsdfksdf「這些字串的值是個位址而已,就和陣列名代表它的位址一樣,字串也代表它的第乙個字母的位址

2樓:

這不是語言問題。

char *ptr = "abcdefg"; //系統會在靜態區開闢一塊唯讀記憶體,初始化為"abcdefg"

你用ptr*修改這塊記憶體,作業系統肯定不允許ptr = "sdfsfsdfksdf";//沒事,你只是把指標指向另外乙個地方。不過你要修改,仍然出錯。

你的情況是c++唯一允許非const變數引用const資料的地方。c的**就不清楚了。

C語言中有哪些字串處理函式,C語言字串處理的庫函式有哪些

你可以看一下頭檔案string.h和stdio.h裡面的相關函式宣告,好多好多。這裡就不一一列出了 比如下面列出的只是其中一部分 crtimp char cdecl strcpy char const char crtimp char cdecl strcat char const char crt...

c語言的字串宣告問題,C語言的字串宣告問題

簡單說一下 字串陣列是用來存放字串的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方法為 char p 完整的解答 1 字元陣列由若干個元素組成,每個元素中放...

C語言關於字串的問題,C語言關於字串的乙個問題。。

你函式的功能是去處非字母字元,也就是刪除空格個!應該輸出itis 字串是自動加上結束識別符號的 0 遇到這個停止,但是輸出列印出來螢幕上看不到 暈,其實很簡單,因為空格就是空格符不是終止符號 0 c為從輸入的資料中取出的乙個字元,不應該是字串。比較是通過ascii編碼比較的。a z對應的ascii編...

C語言字串陣列的問題,C語言字串陣列的問題

scanf 輸入時不能讀取空格鍵的,所以a儲存的是123,b儲存的是456,當然由於你是用 s輸入的,會自動在123後面加上 0 0是乙個字串的結尾 printf s n s n a i b i 這句只會輸出null int a max b max 這兩個整形陣列儲存的全是0,int的 0轉化為字元...

c語言中的字串指標釋放free問題

1 free函式 原型 void free void ptr 功能 釋放malloc 或calloc realloc 函式給指標變數分配的動態記憶體 標頭檔案 malloc.h或stdlib.h 2 為了避免釋放已經釋放了記憶體的指標記憶體,或沒有釋放記憶體,在c語言中最好是在定義指標時賦初值nul...