C語言——轉(zhuǎn)義字符-創(chuàng)新互聯(lián)

C語言——轉(zhuǎn)義字符

? 轉(zhuǎn)義字符(Escape character),所有的ASCII碼都可以用“\”加數(shù)字(一般是8進(jìn)制數(shù)字)來表示。而C中定義了一些字母前加""來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉(zhuǎn)義字符,因?yàn)楹竺娴淖址疾皇撬緛淼腁SCII字符意思了。

創(chuàng)新互聯(lián)建站專注于蘆山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供蘆山營(yíng)銷型網(wǎng)站建設(shè),蘆山網(wǎng)站制作、蘆山網(wǎng)頁設(shè)計(jì)、蘆山網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造蘆山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供蘆山網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。常見轉(zhuǎn)義字符
轉(zhuǎn)義字符釋義
?在書寫連續(xù)多個(gè)問號(hào)時(shí)使用,防止他們被解析成三字母詞
\`用于表示字符常量`
\"用于表示一個(gè)字符產(chǎn)內(nèi)部的雙引號(hào)
\\用于表示一個(gè)反斜杠,防止它被解釋為一個(gè)轉(zhuǎn)義序列符
\a警告字符,蜂鳴
\b退格符
\f進(jìn)紙符
換行
\r回車
\t水平制表符
\v垂直制表符
\dddddd表示1~3個(gè)八進(jìn)制的數(shù)字。如:\130X
\xdddd表示2個(gè)十六進(jìn)制數(shù)字。如:\x30 0

下面是它們具體的使用方法
  • ?

在某些編譯器下 ,會(huì)將 “ ??) ” 解析成 三字母詞 “ ] ” ,
所以在打印 “ ??) ”時(shí),為了防止被解析成三字母詞,在它前面加 " \",改成 ” ??) “ 。


  • \`

像這樣打印單引號(hào)時(shí)會(huì)造成編譯器無法編譯:

printf("%c",''');

在 ’ 前面加 \ 將它轉(zhuǎn)義就可以打印出來了,

像這樣

printf( "%c",' \' ');

在這里插入圖片描述

  • \"

與 \` 用法相同,這里就不再贅述了。


  • \\

用來表示一個(gè)反斜杠,防止它被解釋為一個(gè)轉(zhuǎn)義序列符,

當(dāng)你想打印一個(gè)文件路徑時(shí),如果直接這樣寫:

printf("c:\test\test.c");

那打印出來的結(jié)果將是這樣的:

在這里插入圖片描述

這是因?yàn)?\t 會(huì)被編譯器解析為水平制表符,

正確的寫法是在 \ 的前面加 \ 進(jìn)行轉(zhuǎn)義, 防止被解析為 \t,

printf("c:\\test\\test.c");

打印出來的結(jié)果是這樣的:
在這里插入圖片描述


  • \a

在打印 \a 時(shí)會(huì)觸發(fā)電腦上的蜂鳴器.。


  • \ddd

ddd表示1-3個(gè)八進(jìn)制的數(shù)字。將ddd三個(gè)數(shù)字轉(zhuǎn)換成十進(jìn)制,十進(jìn)制數(shù)對(duì)應(yīng)的ASCAII就是結(jié)果。

猜一猜下面的代碼打印出的是什么?

printf("%c",'\130');

在這里插入圖片描述

?為什么會(huì)是X?

因?yàn)檩敵鼋Y(jié)果為字符型,將八進(jìn)制數(shù)字130轉(zhuǎn)換為十進(jìn)制為88,然后輸出在[ASCII表](ASCII_百度百科 (baidu.com))中對(duì)應(yīng)的字符X。

如果輸出類型為整型,打印的結(jié)果就是八進(jìn)制130轉(zhuǎn)換為十進(jìn)制的結(jié)果

像這樣:

printf("%d",'\130');

在這里插入圖片描述

? 其實(shí) \ddd 最多只支持三位數(shù)字,并且三位數(shù)字也不是任意的(每個(gè)數(shù)字不能大于8,一旦大于8它就不是八進(jìn)制數(shù)了),一旦大于等于八進(jìn)制數(shù) '/400 '(十進(jìn)制256=8進(jìn)制400)就超過了ascall碼的范圍,編譯器就會(huì)報(bào)錯(cuò)。另外大于三位,或者遇到非八進(jìn)制數(shù)字時(shí)則轉(zhuǎn)換結(jié)束,直接取末尾數(shù)字。


  • \xdd

同樣首先要了解的是dd表示2個(gè)十六進(jìn)制數(shù),

猜一猜下面的代碼打印出的是什么?

printf("%c",'\x30');

在這里插入圖片描述

為什么是0呢?

因?yàn)檩敵鼋Y(jié)果為字符型,將十六進(jìn)制數(shù)字30轉(zhuǎn)換為十進(jìn)制為48,然后輸出在ASCII表中對(duì)應(yīng)的字符 0。

同樣的,如果輸出類型為整型,打印的結(jié)果就是十六進(jìn)制30轉(zhuǎn)換為十進(jìn)制的結(jié)果。

printf("%d",'\x30');

在這里插入圖片描述


來看一看下面的練習(xí)題吧

1. 猜猜下面的代碼打印的數(shù)字是多少?

printf("%d",strlen("qwer t"));

答案是:

在這里插入圖片描述

為什么是6呢?

  • 首先,strlen求得是字符串長(zhǎng)度
  • 其次,空格也是一個(gè)字符
  • 然后,字符串末尾的\0不算是字符

所以打印的結(jié)果就是6了。


2. 再猜猜下面的代碼打印的數(shù)字是多少?

printf("%d",strlen("c:\test\628\test.c"));

答案是:
在這里插入圖片描述

為什么是14呢?

因?yàn)檫@個(gè)字符串中有轉(zhuǎn)義字符存在。

紅色方框里的部分都會(huì)被轉(zhuǎn)義成一個(gè)字符,
在這里插入圖片描述
這里要注意這里的628不是八進(jìn)制數(shù)字,62是八進(jìn)制數(shù)字
八進(jìn)制數(shù)字每個(gè)數(shù)字大不能大于7,大于7就要進(jìn)位了。
所以一共有14個(gè)字符。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:C語言——轉(zhuǎn)義字符-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article14/dchhge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航搜索引擎優(yōu)化、Google網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司