1樓:手機使用者
因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後一個元素加上"\0",表示字串結束,這是一種字串的表達方式。
c語言中字串,為什麼最後要加個『\0' ?
2樓:匿名使用者
'\0'一般放在字串的結束處,表示字串的結束,其是ascii值為0的字元的轉義。
在標頭檔案#include 中包含的一些字串處理函式等中,一般處理字串時,都是一'\0'作為字串的結束,如果一個字串中沒有'\0'這個結束字元,那麼這些函式將不能確定字串的結束位置在哪兒,從而引起一些不必要的錯誤。
3樓:匿名使用者
\0'在c語言中代表著字串的結束
在你不輸入'\0'的時候 字串不知道已經讀完了 還有繼續向後讀 讀一個位元組長度是?兩個位元組長度
就是燙 這是ascii值決定的 漢子是兩個位元組就不多說了 '\0'的ascii值為(0x)00有時候如果未定義可能會出現一堆燙知道出現預設的00(也就是'\0')才會停止。
4樓:匿名使用者
因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後一個元素加上「\0",表示字串結束,這是一種字串的表達方式。
5樓:匿名使用者
表示字串結束,在輸出的時候輸出到這裡為止,你可以試一下在字串中間加入\0 再輸出,就只會輸出\0前面的內容。
6樓:匿名使用者
那個設計c語言編譯器的人強制規範這樣的
7樓:匿名使用者
字串結束符。 表示字串結束。 跟'\n'表示換行,差不多。
c語言中在字串的結尾加0還是'\0'?有區別嗎?
8樓:匿名使用者
有區別,在c中'\0'為轉義字元,為字串結束標誌。在我們輸入字串時,其實當輸入結束時,編譯器會自動加上'\0'。
9樓:匿名使用者
加'\0',是有區別,其中的'\0'為轉義字元,其ascii值為0,
而數字 0(字元型) 的ascii值為0+48=48 ,可以用printf("%d %d %d",'\0','0',0);
語句來檢視
10樓:匿名使用者
兩者bai是相同du的。
例:zhichar *str="abcd";
memset(str+3, 0, 1) ==> str="abc"
memset(str+3,'\0',1) ==> str="abc" 此二
者等價dao
但memset(str+3,'0',1) ==> str="abc0"
從另一專
個角度屬
(int)(0) = 0
(int)('\0') = 0
(int)('0') = 48
11樓:匿名使用者
一樣的,都是字串結束符。
12樓:匿名使用者
有,加'\0'後字元無消
c語言中字串為什麼要有`\0`呢?`\0`在字串中的作用是什麼啊?
13樓:踏雪一無痕
『\0`在字串中標誌著結尾
用來判斷這個字串已經結束
如果不新增'\0',系統就在記憶體中一直向後讀,直到讀到'\0'為止(這個情況就造成錯誤)
一個語句結束了,就用分號;表示結束啊
14樓:匿名使用者
'\0'表示字串結束,一個語句的結束是用一個;號來表示的,如果是語句塊的話是用大括號來表示結束的。。
15樓:我是盼妹珊珊
\0在出入吸附石不會出現,輸出是也不會出現,\0是系統自動加的,表示一個字串的結束,在記憶體中佔有一個字元的位置。一個語句結束了用;表示
16樓:周鑫輝
有事沒事的,一般都是最好寫上去。
大多是都是用for(;;)或者while( )語氣的,看個喜愛羅
關於c語言字元陣列的賦值最後自動新增『\0』問題
17樓:
#include
void main()
;printf("%s\n",c);
c[0]='a'; // 僅對bai第一位元du素賦zhi值,它並不影響dao
其後面的版字元權
printf("%s\n",c);
c[1]='b'; // 同理
printf("%s\n",c);}
18樓:w天使de翅膀
可以正常讀出來的,\0只是一個相當於識別符號的東西,用來判斷已經到達字串的末尾
19樓:匿名使用者
c[5]只有5個空間無法完全容納字串"hello",因為這個字串需要佔用6個字元位置。
所謂自動加'\0'的問題是內:你寫在雙
容引號中的,編譯程式會認為是字串,會自動為你新增上一個字串結尾符號0,而不是執行時新增的。
如果你用debug方式執行程式,除錯環境自動會把你開設的char a[5];進行初始化0的工作,這時你再將第1位初始化時,後面的0仍存在就好象字串結尾已經存在了。如果非debug執行則沒有這個初始化工作。
如果你用字元方式初始化應當寫:char c[6]=;
20樓:匿名使用者
char c[5] = ; 有兩個問題
(1)語法不對,應該是 char c[5]="hello"
(2)有錯誤, char c[5]="hello",字串終止符溢位了
2. 但是我如果定義char a[5];給前一回位賦初值,答
則第二到第五位會自動賦值'\0'
// 沒錯,但注意是陣列第1到第4項自動賦值為0但後面我又給第三位到第五位賦值了,這個陣列是不是就不能正常讀出了// 需要看你賦什麼值,如果是非零值、並且你把陣列a當字串使用,則結果無法預料(無法確定終止符);如果你把陣列a只是當陣列使用,則不會有讀取問題
21樓:阿炳仰
可以正常讀出 就是隻能讀出 第一位
c語言中字串和陣列的區別,C語言中字串和陣列的區別
這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...
C語言中什麼是字串,C語言中如何定義字串?
加了 符號的字元,例如 c 3 在c語言中,由零個或多個字元組成且通過雙引號括起來的有限序列就叫字串.例如 hello world 我愛中國 a 123456 等等.另外字串在記憶體中是由字元型陣列來儲存的.且在儲存的時候多加 0 表示字串已經結束.例如 char string 12 hello w...
c語言中用switch函式轉換字串資料怎麼用
1 switch函式只能對整數型別的變數進行列舉,而字串型別不屬於整型變數。因此,必須對字串進行轉化。根據不同的字串比較結果,執行不同的操作。2 例程 假如有這幾個固定的字串 string1 string2 stringn 可以做這種變換 char str 100 假設已經賦值了 int i 0 c...