国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

三字母詞和轉義字符

2019-11-11 02:30:32
字體:
來源:轉載
供稿:網友

1. 三字母詞

在C語言中有一種三字母詞的說法,trigraph sequences,目前為止有九種三字母詞,如下

??=               #                  ??)            ]                  ??!           |        

??(                [                   ??'            ^                  ??>          }??/                /                    ??<          {                   ??-           ~

三字母詞出現的原因是,為了避免以前的老式鍵盤中沒有上面的九種字符

這里還需要注意的是,在用gcc編譯時可能會出現如下錯誤

在編譯時如果不加-trigraphs會出現如下警告warning: trigraph ??/ ignored, use -trigraphs to enable我們需要在編譯時加上-trigraphs選項,而且需要加在最前面。cc -trigraphs -o test test.c

這里我們需要注意的一點就是,當我們看到兩個問號同時出現時,就留意一下三字母詞,避免引起不必要的麻煩,防止出現三字母詞,即想打印出兩個問號時,就使用/?

2. 轉義字符

我們在編寫C程序的時候,會想要打印出某些符號,但是因為這些符號是有特殊含義的,所以經常不能如愿,接下來就是轉義字符了

轉義字符(escape sequence)由一個反斜杠/加上一個或多個其他字符組成。

/?在書寫連續多個問號時使用,防止它們被解釋為三字母詞。

/"用于表示一個字符串常量內部的雙引號。

/'用于表示字符常量‘。

//用于表示一個反斜杠,防止它被解釋為一個轉義序列符。

/a警告字符。
/b退格鍵
/f進紙字符
/n換行符
/r回車符
/t水平制表符
/v水平制表符
/dddddd表示1~3個八進制數字,表示八進制所對應的十進制數對應ASCII對應的字符。
/xddd與上例類似,只是八進制數換成了十六進制數

3.小例題

     這里我們來看一道題目

len = strlen("c:/code/test/ten.c");

這個時候len的結果是15,因為/為當成是一個轉義字符的標識,所以這里/c和/t被分別當成是一個字符

變式1:len = strlen("c://code//test//ten.c");

結果是18,這里//被當成是一個字符,表示一個/,而c和t就被當成是一個字符

變式2:len = strlen("c://code//test//ten.c/123");

結果是19,因為后面的/123,是上文中轉義字符的一種,表示123八進制所對應的十進制數對應的asall碼多對應的字符

變式3:len = strlen("c://code//test//ten.c/023");

這里的結果是還是19,題目沒有把/0作為結束的標識

變式4:len = strlen("c://code//test//0ten.c/023");

這里的結果是12,因為/0在這里被當成是結束的字符串標識,并且不被strlen統計成一個字符


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双鸭山市| 普格县| 丽江市| 蓬溪县| 铜陵市| 荔波县| 和林格尔县| 汝州市| 磴口县| 垦利县| 慈溪市| 乌拉特中旗| 星座| 乡城县| 辰溪县| 武陟县| 东港市| 股票| 芒康县| 监利县| 信丰县| 雷山县| 贡觉县| 托里县| 博爱县| 沅江市| 安龙县| 五莲县| 阿拉善右旗| 定襄县| 阿克苏市| 金塔县| 万年县| 白沙| 开封市| 曲靖市| 沽源县| 南通市| 当雄县| 茶陵县| 成武县|