空格符號和空字元是不一樣的,在ascii裡面,空格(space)符號的ascii碼是0x20,而空字元是0x0, 2個是完全不一樣的2個字元呵呵.
空字元一般來描述乙個字串的結尾,其實是控制符的一種,但不能理解為沒有字元,應該理解為代表什麼都沒有的字元.好比回車0x0a和換行0x0d雖然不顯示,但是也是控制字元的一種.(這些字元以前是用於印表機的,所以很多都沒有用了)
字串的概念
:在c語言中,字串是指由若干個有效字元(其中包括字母、數字、轉義字元、等)組成的系列,
以'\0'作為字串結束標誌
。'\0'是乙個「空操作」字元,它不做任何操作,只是乙個標誌。'\0'的**值為0,它不計入串的長度。
還有這裡需要注意下在接受字串的時候,如果用
scanf來接收的話,字串中不能含有空格,否則將以空格作為串的結束符
。如果你鍵入得是harry potter 那麼實際上scanf只能獲取harry這個單詞。所以要
接收空格的話可以用gets()這個函式
。
補充:c語言中字串結束符'\0'就是0.
》'\0'就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。在數值型別裡就代表數字0。 補充:這個你要去學下基礎的,數值型別儲存時,最高位決定正負號,其他位都為0可不就是0了麼? '\0'是轉譯字元,意思是告訴程式,這不是字元0,我要的是數字0的2進製直接放進來,因為acsii碼的0可不是00000000
Mysql中空格與空字串的問題
mysql中空格與空字串查詢時混淆的問題 在mysql中,對於一項屬性為字串型別的域element,如果其值為空字串或者是空格,在查詢時可能會出問題 執行select from table where element 或者是 select from table where element 的結果是一...
C語言中空格和 0的區別
0 為字串結束符,比如說 abcd 空格 cdefg 存入陣列時,空格作為乙個字元占有乙個位元組的空間,我們可以把它看著乙個字元去處理。而 0 則是這個字串的結束識別符號,也占有乙個位元組的空間,表示字串結束!char a a b c d c d e f g 0 附 如果用scanf來接收字串的話,...
C語言中字元陣列庫函式
以下內容摘自 c程式設計教程 美 h.m.deitel p.j.deitel著,薛萬鵬等譯,機械工業出版社。void memccpy void dest,const void src,int c,size t n 從sr 所指向的物件複製 個字元到 est所指向的物件中。如果複製過程中遇到了字元c則...