A. 數據結構(C語言)中字元串的問題
空格串表示字元串裡面的元素是「空格」
空格是確確實實存在的字元 只是不能顯示的列印在屏幕上而已
在ASCII碼中空格對應的是32(十進制 十六進制是20h)與別的字元對待是相同的
而空串則是表示字元串為空 即"" 也就是字元串中不含任何字元 字元長度為0
一般用作對新定義的字元串進行初始化
他們的區別還是蠻大的 不過有一個概念叫空字元到比較容易混淆
空字元是『\0』他是確實存在的字元 在字元數組中表示字元串的結束
B. C語言中,空串一定比空格開頭的字元串小
1、空串的值為"\0"即在計算機asc值為:0
空格開頭的字元的asc值為:32
所以空格大於空串;
2、不能用關系運算符在C語言中對字元串進行比較,但你可以用strcmp()函數對兩個字元串進行比較。
你問的是字元比較,如果字元可以用關系運算符進行比較,因為在C語言中,字元比較是按asc值進行比較的,所以實際上是整數進行比較。
C. C語言中NULL是什麼意思
在C語言中,NULL和0的值都是一樣的,但是為了目的和用途及容易識別的原因,NULL用於指針和對象,0用於數值。對於字元串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字元串的結尾,不是指針,也不是普通的數值。
拓展資料:
關於NULL的使用
編程工作中有一類比較容易犯的錯誤--指針地址未進行正確的更新賦值就加以使用,這往往會造成很嚴重的後果(對內存區進行錯誤的塗抹)。所以一個良好的習慣是,當一個指針的工作稍事休息,先把它賦值為NULL,待到再度使用時,重新對其賦值以及進行指針類型轉化。
前面說到"NULL指針無法再進行任何數據訪問",其實是視編譯器功能而定的。0位置指向的是程序起始,對於不同的編譯器,NULL指針的操作結果是不同的:有些是不準讀寫,有些是只讀,甚至讀寫都允許。編譯器是人定的。
D. C語言怎麼表示空串
空串怎麼表示我可以說,但是你的程序錯誤太多了,你慢慢修改:)
空串應該用一對引號,中間不加空格來表示。但是C語言程序裡面,除了變數定義時候以外,不能把字元串賦值給變數的,需要使用strcpy函數。不過要把變數賦值為空串,可以直接給串的第一個字元賦予'\0',例如:h.num[0]='\0';
你的程序就是這行的前面兩行,那個for應該是if,否則你的else不匹配,還要出錯。
E. C語言中什麼是空字元,它的作用是什麼
空字元是指『\0』,或者是字元的編碼值為0的字元。
C的字元串存儲時通常以空字元結束,該字元的存在意味著數組的單元數必須至少比要存儲字元數多1。
與之對應的是空白字元:空白字元是指在屏幕上不會顯示出來的字元(如:空格、製表符tab、回車換行等)