c語言如何在字串中新增轉義字元

2021-03-10 15:51:32 字數 3460 閱讀 9623

1樓:匿名使用者

0.在字元陣列中插入bai換du行符的就是這樣操作的。zhi

1.這個程dao

序有溢位的問題,版

實際程式設計時不可權使用這樣的**,因為**s陣列的長度就是len個字元,所以賦值操作不應該對**s[len+1]之類的位置賦值。

2.由於你的換行符是放在了最後一個字元,所以程式會在輸出完一行之後換行。

2樓:天雲一號

在字串中新增轉義字元時,需要在轉義字元的前面加一個'\'即可。因為c語言中版轉義字元都是以'\'開頭的,因此權在'\n'的前面加一個下劃線,相當於將'\\'當成一個轉義字元,輸出'\',而後面的字元'n'原樣輸出,以此達到輸出'\n'的目的。

舉例如下:

char *str1 = "abc\n";

char *str2 = "abc\\n";

printf("%s", str1);  // 輸出abc並回車換行printf("%s", str2);  // 輸出abc\n(沒有回車換行)

從上例可以看出,在轉義字元之前加'\'能夠原樣輸出轉義字元。

3樓:匿名使用者

有什麼問題q我:

453867443

uchar **s="**s=\"1343028\",\n溫度是";

這樣不就ok了

4樓:匿名使用者

分配給陣列空間太小了,導致輸出時輸出了未知空間的資料

5樓:匿名使用者

字串後面直接新增『\0』就代表結束了,為什麼要在前面先新增『\n』啊??

轉義字元中\n \r有什麼區別,\n 是回車換行,\r換行?,在程式中具體怎麼用\r啊?

6樓:凹凸曼

\n 是換行,英文是new line。

\r 是回車,英文是carriage return。

\r 與 \n 合起來就是回車換行的意思,回車是將游標移到當前行的行首;換行是將游標移到當前行的下一行,但還是同一列,不會回到行首。

擴充套件資料

關於 「回車」(carriage return)和 「換行」(line feed)這兩個概念的來歷和區別。

在計算機還沒有出現之前,有一種叫做電傳打字機的玩意,每秒鐘可以打 10 個字元。但是它有一個問題,就是打完一行換行的時候,要用去 0.2 秒,正好可以打兩個字元。

要是在這 0.2 秒裡面,又有新的字元傳過來,那麼這個字元將丟失。

於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做 「回車」,告訴打字機把列印頭定位在左邊界;另一個叫做 「換行」,告訴打字機把紙向下移一行。

後來,計算機發明瞭,這兩個概念也就被般到了計算機上。那時,儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加一個就可以。於是,就出現了分歧。

unix 系統裡,每行結尾只有「《換行》」,即「\n」;windows 系統裡面,每行結尾是「< 換行 >《回車》」,即「\n\r」;mac 系統裡,每行結尾是「《回車》」。一個直接後果是,unix/mac 系統下的檔案在 windows 裡開啟的話,所有文字會變成一行;而 windows 裡的檔案在 unix/mac下開啟的話,在每行的結尾可能會多出一個^m符號。

7樓:匿名使用者

\n是換行,英文是new line,表示使游標到行首:在windows 中表示換行且回到下一行的最開始位置。相當於mac os 裡的 \r 的效果。

在linux、unix 中只表示換行,但不會回到下一行的開始位置。

\r是回車,英文是carriage return,表示使游標下移一格:在linux、unix 中表示返回到當行的最開始位置。在mac os 中表示換行且返回到下一行的最開始位置,相當於windows 裡的 \n 的效果。

具體例子如下:

eclipse裡執行結果如下:

8樓:匿名使用者

'\r'是回車,前者使游標到行首,(carriage return)

'\n'是換行,後者使游標下移一格,(line feed)

\r 是回車,return

\n 是換行,newline

對於換行這個動作,unix下一般只有一個0x0a表示換行("\n"),windows下一般都是0x0d和0x0a兩個字元("\r\n"),蘋果機(mac os系統)則採用回車符cr表示下一行(\r)

unix系統裡,每行結尾只有「《換行》」,即「\n」;

windows系統裡面,每行結尾是「《回車》《換行》」,即「\r\n」;

mac系統裡,每行結尾是「《回車》」,即「\r」。

一個直接後果是,unix/mac系統下的檔案在windows裡開啟的話,所有文字會變成一行;而windows裡的檔案在unix下開啟的話,在每行的結尾會多車一個^m字元。

dos和windows採用回車+換行cr/lf表示下一行,即^m$($不是換行符的表示,換行符沒有表示出來,$是文字結束eof的表示)

而unix/linux採用換行符lf表示下一行,即\n

蘋果機(mac os系統)則採用回車符cr表示下一行,即\r

cr用符號'\r'表示, 十進位制ascii**是13, 十六進位制**為0x0d;

lf使用'\n'符號表示, ascii**是10, 十六製為0x0a. 所以windows平臺上換行在文字檔案中是使用 0d 0a 兩個位元組表示, 而unix和蘋果平臺上換行則是使用0a或0d一個位元組表示.

由於dos風格的換行使用\r\n,把這樣的檔案上傳到unix,有些版本的vi不能識別\r,所以vi顯示時在行尾會出現^m出來,但是有些就能識別\r\n,正常顯示回車換行。

9樓:桓秋芹岑午

\n是換行,\r是回車,是不同的

#include

intmain()

return0;}

這樣,新列印出來的

i是會覆蓋了前面的,而如果用

\n就是換行列印,不會覆蓋前面的

如果在檔案裡面,\r\n

才是檔案裡面的換行

c語言中,單獨輸出轉義字元"\n",如printf「\n」,代表什麼意思?和放到格式字元後面有什麼

10樓:金色潛鳥

格式字元裡 "\n" 是換一來行的源意思。

printf("\nabc"); 先bai 換一行,再列印du字元abc.

printf("abc\n"); 先打zhi印字元abc, 再換一行.

printf("\nabc\n"); 先 換一行,再列印字元abc, 然後dao再換一行。

11樓:兔子小神

是printf("\n");就是換行的意思

12樓:江南客棧愛發呆

沒有區別,都是換行的意思

13樓:匿名使用者

就是換行,沒什麼特別的意思

C中如何除去字串中的轉義符,C 如何去掉string中所有轉義字元(特殊符號)?

在字串的前邊加 eg string str 14 r a string str a r n str.replace r n c 轉義字元總結 轉義字元 一種特殊的字元常量 以反斜線 開頭,後跟一個或幾個字元。具有特定的含義,不同於字元原有的意義,故稱 轉義 字元。主要用來表示那些用一般字元不便於表示...

C中如何分割字串C中如何分割字串,例如將某個帶著路徑的檔名的字串分割後只得到最後的檔名。。。

可以用split。比如你先定義一個字串物件 string str a,b,c,d,e,f,g 然後你再定義一個陣列 string words str.split 這段 就是把str按照逗號進行分割,也就是把str分割成a和b和c和d和e和f和g儲存在你定義的字串陣列words中,此時words 0 ...

跪求c語言字串處理函式,跪求 c語言字串 7個處理函式

1.字串連線函式 strcat 原型 char strcat char str1,const char str2 2.字串查詢函式 strchr 原型 char strchr const char str1,const char str2 3.字串比較函式 strcmp 原型 int strcmp ...