1樓:自我程式設計
空格是空格,結束符0是結束符0,兩者不對等。
你貼的那個圖是不是講的scanf輸入,scanf這個函式預設是將空格作為分割符號,所以你輸入
“how are you”它是當做三個字串來識別的分別以空格來分割。
至於你說的二維字元陣列初值,用大括號巢狀每一行套一個括號,和只用一個大括號,都是一樣的。只不過用大括號把每行分開,可以單獨對某一行區域性賦值。
實際上二維陣列是給你看的,在計算機眼裡都是一維陣列。a[5][5]在記憶體中其實就是連續的25個地址(從地址分佈上來說和a[25]沒區別)。你可以試試取首地址&a[0][0],然後依次++,可以一直取到最後一位。
所以直接用一個大括號,就是按照連續地址賦值。
你可以試試下面**,列印就是一樣。(重點是printf語句輸出字串是找到第一個結束符號0為終止,沒有0就會一直往後面輸出直到越界)。
char a[2][5]=;
char b[2][5]=,};
printf("%s\n",a[0]);
printf("%s\n",b[0]);
2樓:半田明月
'\0'的ascii碼值是0,不顯示任何東西。
空格' '的ascii碼值是32,顯示一個空。
scanf讀取字串會考慮空格,但是gets不會。
3樓:
“這兩個陣列輸出是一樣的”?
不知道你是怎麼輸出的。
作為字串時它們是不一樣的,一個是結尾標誌,一個就是空格符號。
作為字元顯示時它們都是看不見的圖形,比如printf("%c",' ');和printf("%c",'\0');它們顯示在螢幕上是看不見的,所以你就認為它們一樣。
它們是不一樣的,是不可以替換的。
c語言裡空格是\加什麼
4樓:非常可愛
c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元。
轉義字元具有特定的含義,不同於字元原有的意義,故稱“轉義”字元。例如,在前面各例題printf函式的格式串中用到的“\n”就是一個轉義字元,其意義是“回車換行”。轉義字元主要用來表示那些用一般字元不便於表示的控制**。
轉義字元是很多程式語言、資料格式和通訊協議的形式文法的一部分。對於一個給定的字母表,一個轉義字元的目的是開始一個字元序列,使得轉義字元開頭的該字元序列具有不同於該字元序列單獨出現時的語義。因此轉義字元開頭的字元序列被叫做轉義序列。
擴充套件資料常用的轉義字元及其含義
轉義字元轉義字元的意義ascii**
\n回車換行10
\t橫向跳到下一製表位置9
\b退格8
\r回車13
\f走紙換頁12
\\反斜線符"\"92
\'單引號符39
\”雙引號符34
\a鳴鈴7
\ddd1~3位八進位制數所代表的字元
\\xhh1~2位十六進位制數所代表的字元
5樓:匿名使用者
空格,也就是空字元(nul)的轉義字元是\0。
所有的ascii碼都可以用“\”加數字(一般是8進位制數字)來表示。
在ascii 編碼內,0~31(十進位制)範圍內的字元為控制字元,它們都是看不見的,不能在顯示器上顯示,甚至無法從鍵盤輸入,只能用轉義字元的形式來表示。不過,直接使用 ascii 碼記憶不方便,也不容易理解,所以,針對常用的控制字元,c語言又定義了簡寫方式,完整的列表如下:
6樓:匿名使用者
一、\0 是空字元(null) 但直接打空格就可以。
合法轉義字元如下:
\a 響鈴(bel)
\b 退格(bs)
\f 換頁(ff)
\n 換行(lf)
\r 回車(cr)
\t 水平製表(ht)
\v 垂直製表(vt) 0
\\ 反斜槓
\? 問號字元
\' 單引號字元
\" 雙引號字元
\0 空字元(null)
\ddd 任意字元 三位八進位制
\xhh 任意字元 二位十六進位制
擴充套件資料c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。
如有表示式x-y+z 則y 應先與“-”號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。
最典型的右結合 性運算子是賦值運算子。如x=y=z,由於“=”的右結合性,應先執行y=z 再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。
7樓:劉2星雨
不是所有字元都需要轉義的,空格直接就敲空格,或者使用ascii碼值賦值為32
空格沒有轉義字元
合法轉義字元如下:
\a 響鈴(bel)
\b 退格(bs)
\f 換頁(ff)
\n 換行(lf)
\r 回車(cr)
\t 水平製表(ht)
\v 垂直製表(vt) 0
\\ 反斜槓
\? 問號字元
\' 單引號字元
\" 雙引號字元
\0 空字元(null)
\ddd 任意字元 三位八進位制
\xhh 任意字元 二位十六進位制
8樓:用著追她
c語言裡空格是' ',反斜槓是轉義字元,空格不需要轉義 。
c語言的使用優點:
1、簡潔緊湊、靈活方便。c語言一共只有32個關鍵字,9種控制語句,程式書寫形式自由,區分大小寫。把高階語言的基本結構和語句與低階語言的實用性結合起來。
c 語言可以像組合語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算子豐富。c語言的運算子包含的範圍很廣泛,共有34種運算子。c語言把括號、賦值、強制型別轉換等都作為運算子處理。
從而使c語言的運算型別極其豐富,表示式型別多樣化。靈活使用各種運算子可以實現在其它高階語言中難以實現的運算。
3、資料型別豐富。c語言的資料型別有:整型、實型、字元型、陣列型別、指標型別、結構體型別、共用體型別等。
能用來實現各種複雜的資料結構的運算。並引入了指標概念,使程式效率更高。
擴充套件資料
c語言使用缺點:
1、 c語言的缺點主要表現在資料的封裝性上,這一點使得c在資料的安全性上有很大缺陷,這也是c和c++的一大區別。
2、 c語言的語法限制不太嚴格,對變數的型別約束不嚴格,影響程式的安全性,對陣列下標越界不作檢查等。從應用的角度,c語言比其他高階語言較難掌握。也就是說,對用c語言的人,要求對程式設計更熟練一些。
9樓:匿名使用者
空格就是' ',這樣表示就行了,反斜槓是轉義字元,空格不需要轉義
10樓:陳宗權
空格不用\轉義,直接用鍵盤輸入空格字元即可。
如果一定要用\,那麼你可以用\040或者\x20。
11樓:匿名使用者
單個空格不用轉義字元
\t是4個空格
12樓:匿名使用者
\後加個空格
比如:printf("%d\ ",d);
就ok了
13樓:後元塞慕晴
空格沒有轉義字元
合法轉義字元如下:
\a響鈴(bel)
\b退格(bs)
\f換頁(ff)
\n換行(lf)
\r回車(cr)
\t水平製表(ht)
\v垂直製表(vt)0\\
反斜槓\?
問號字元
\'單引號字元
\"雙引號字元
\0空字元(null)
\ddd
任意字元
三位八進位制
\xhh
任意字元
二位十六進位制
c語言中“\0”到底是不是空格?
14樓:充實生活
肯定不是空格啊,那個是個顯示不出來的字元,使用來做字串結束標誌的,ascii 碼裡面好多都顯示不出來的字元,列印出來應該都是這個效果的啊。
15樓:金色潛鳥
c語言中“\0”不是空格,是空字串。
'\0' 是字元常量,null 字元,ascii碼數值0,用作字串結尾符。
"\0" 是字串,裡面有一個寫入的字串結尾符,還有一個預設的字串結尾符。
"\0" 字串長度是0, 佔記憶體 2 位元組。
檢驗:#include
main()
輸出:0 2 (可以看出,字串長度0,佔記憶體2)|||| (可以看出沒有輸出空格)
16樓:幻想祕境
不能說明,'\0'是空字元ascii碼值為0,而空格的ascii碼值為32,如果將'\0'以%d的形式輸出,結果為0(null),望採納!
17樓:匿名使用者
c語言中'\0'不是空格,'\0'的ascii碼是0。空格是' ',其ascii碼是32。
18樓:漫步者
不是所有字元都需要轉義的,空格直接就敲空格,或者使用ascii碼值賦值為32
\0 是字串結束符
19樓:雲淡風輕in蘇州
當然不是空格了,ascii碼都不一樣的!
c語言中trn和空格什麼意思
t r n都是轉義字元。空格就是單純的空格。輸入時可以輸入空格 t 的意思是 橫向跳到下一製表符位置 r 的意思是 回車 n 的意思是回車換行。轉義字串 escape string 即字元實體 character entity 分成三部分 第一部分是一個 符號,英文叫ampersand 第二部分是實...
c語言中 t r n和空格什麼意思
在c語言中,是轉義識別符號 t是橫向跳到下一製表位置 相當於你按的 tab 鍵 r是回車 n是回車換行 與這差不多的還有 a 警告 b 退格 f 換頁 v 垂直跳格 ddd ddd 是 1 2 或 3 位八進位制數字 c語言中 t r n 和空格都是什麼意思啊?以下轉義序列。在複製到輸出流時,這些序...
C語言把text 檔案中的連續多空格變成空格
1.用split函式隔開,依次放到佇列裡面 2.把佇列裡面的資料重新用 這個組合起來 1 先trim一下去掉前後的空格,然後將 替換為 迴圈直到找不到 2 china逐字讀出來然後再double的寫進去咯。或者把a替換成aa這樣的,但是不能遞迴。自己寫吧,自己寫印象深刻,呵呵。1.如果用的是託管c可...