C語言中如何判斷是不是合法轉義字元

時間 2021-08-30 10:52:47

1樓:越答越離譜

'\0'是八進位制的轉移字元,如果看到:\087這就是非法的,'\0x'表示十六進製制,還有一些必備的如:'\n','\r'這些。

和普通的字元判斷相同,比如判斷和'a'是否相同,ch=='a',那麼判斷轉義一樣,如ch=='\n',邏輯表示式的結果只有兩個,true和false,所有的邏輯表示式都一樣,為真就是true,否則就是false。

#include

int main(){

char a[20]="abc\'efgh";

int i=0;

for(i=0;i<20;i++){

if(a[i]=='\\'&&a[i+1]=='\'')

printf("true,%d",i);

if(a[i]=='\'')

printf("false");

if(a[i]==0){

printf("%d",i);

break;

資料型別關鍵字

short:修飾int,短整型資料,可省略被修飾的int。(k&r時期引入)

long:修飾int,長整型資料,可省略被修飾的int。(k&r時期引入)

long long:修飾int,超長整型資料,可省略被修飾的int。(c99標準新增)

signed:修飾整型資料,有符號資料型別。(c89標準新增)

unsigned:修飾整型資料,無符號資料型別。(k&r時期引入)

restrict:用於限定和約束指標,並表明指標是訪問乙個資料物件的初始且唯一的方式。(c99標準新增)

複雜型別關鍵字

struct:結構體宣告。(k&r時期引入)

union:聯合體宣告。(k&r時期引入)

enum:列舉宣告。(c89標準新增)

typedef:宣告型別別名。(k&r時期引入)

sizeof:得到特定型別或特定型別變數的大小。(k&r時期引入)

inline:內聯函式用於取代巨集定義,會在任何呼叫它的地方。(c99標準新增)

2樓:墨汁諾

分為兩類

乙個是固定字母的,比如 \t \n

另一類就是通用的,包括8進製 16進製制

8進製的 \ooo 後面的ooo是1到3個合法的8進製字元。

16進製制 \xhh 後面的hh是1到2個合法的16進製制字元。

符合以上的就是合法的,否則非法。

控制字元:轉義字元不屬於控制字元;控制字元也不屬於轉義字元。如果控制字元的定義是非圖形的字元,或者對輸出裝置(印表機、文字終端)有特殊意義的字元,那麼針對這些裝置的轉義字元也是控制字元。

但是程式設計用的轉義字元是圖形字元,因此它們不是控制字元。相反地,大多數ascii控制字元單獨都具有控制功能,因此它們不是轉義字元。

3樓:an你若成風

以下是例項:

\a 響鈴

\b 退格

\f 換頁

\n 換行

\r 回車

\t 水平製表

\v 垂直製表

\\ 反斜線字元''\'

\? 問號「?」

\' 單引號(撇號)字元

\" 雙引號字元

\0 空字元(null)

\ddd 三位八進位制

\xhh 二位十六進製制

總的轉義符就這些啦,

所謂合法的,就是符合以上形式的轉義符,除此之外的均不是,比如\ba,這就是先退格再讓a覆蓋在上面,而不是先退格再響鈴,凡是碰到反斜槓「\」就要警惕了,看看有沒有以上所述的轉義,若沒有基本上是錯的;

還要注意的是如果輸入的是\其他英文本母(不在上述之列),輸出的會是ascii碼(具體參見ascii碼對照表)

下面的例項可以幫助您理解轉義符:

#include

int main(void)

4樓:匿名使用者

提問能再具體點嗎,合法轉義字元? 你想判斷什麼?實現什麼?

5樓:匿名使用者

a) '\"' b) '\1011' c) '\011' d) '\abc'

'\\' '\' '\f' '\101'

'\xf' '\a' '\}' 'x1f'

2.下面4個選項中,均是正確的八進位制數和十六進製制數的選項是: 這個我還真無法判斷了

a) -10 b) 0abc c) 0010 d) 0a12

0x8f -017 -0x11 -0x123

-011 0xc 0xf1 -0xa

3.下面4個選項中,均是非法常量的選項是: 為什麼是選 a, '\0xa'應該是合法的吧

a) 'as' b) '\\' c) -0x18 d) 0xabc

-0fff '\01' 01177 '\0'

'\0xa' 12,456 0xf "a"

如何判斷c語言中的變數是否合法

6樓:育知同創教育

l【規則3-2-1】類名和函式名用大寫字母開頭的單詞組合而成。

例如:class node;// 類名

class leafnode;// 類名

void draw(void);// 函式名

void setvalue(int value);// 函式名

l【規則3-2-2】變數和引數用小寫字母開頭的單詞組合而成。

例如:bool flag;

int drawmode;

l【規則3-2-3】常量全用大寫的字母,用下劃線分割單詞。

例如:const int max = 100;

const int max_length = 100;

l【規則3-2-4】靜態變數加字首s_(表示static)。

例如:void init(…)

l【規則3-2-5】如果不得已需要全域性變數,則使全域性變數加字首g_(表示global)。

例如:int g_howmanypeople;// 全域性變數

int g_howmuchmoney;// 全域性變數

l【規則3-2-6】類的資料成員加字首m_(表示member),這樣可以避免資料成員與成員函式的引數同名。

例如:void object::setvalue(int width, int height)

l【規則3-2-7】為了防止某一軟體庫中的一些識別符號和其它軟體庫中的衝突,可以為各種識別符號加上能反映軟體性質的字首。例如三維圖形標準opengl的所有庫函式均以gl開頭,所有常量(或巨集定義)均以gl開頭。

在c語言中為什麼它是不合法的轉義字元? 10

7樓:萢萢

因為這是兩個字元,是字串了,不是單個字元,而字串是需要放在雙引號中的

'\\'算乙個轉義字元

'0'也算乙個字元

8樓:匿名使用者

c中的轉義字元是只使用\+字母來表示ascii字元中的不可見字元(例如空白字元、控制字元等)。

『\0』是空字元,是以字元形式儲存的零值,並非ascii碼,自然是「不合法的轉義字元」咯

c語言如何判斷字串中是否包含轉義字元,比如乙個字串 「abc\'efgh」,我如何判斷這個字串中包含轉義呢 10

9樓:匿名使用者

不管用單引號還是雙引號,只要帶反斜槓就是轉義,如果需要列印反斜槓,就"\\" 。

你是想判斷字串中有沒有使用轉義?

讓我試試。。。。。

。。。。。。

。。。。。。

。。。。。。

。。。。。。

暈死,今天我大腦進屎了,轉義是編譯器幹的,二進位制**中沒有任何轉義字元的資訊了。

#include

int main()

}printf("\n%s",a);

} 或許你可以另寫乙個程式去讀原始檔。。。。。

10樓:匿名使用者

不可以。轉義字元是給人看的,電腦可不分什麼轉不轉義的

11樓:七月愛如煙火

其實字元中要使用轉義符的就那麼幾個,可以用群舉的辦法判斷

c語言怎樣判斷合法轉義字元

12樓:墨汁諾

'\0'是八進位制的轉移字元,如果看到:\087這就是非法的,'\0x'表示十六進製制,還有一些必備的如:'\n','\r'這些。

和普通的字元判斷相同,比如判斷和'a'是否相同,ch=='a',那麼判斷轉義一樣,如ch=='\n',邏輯表示式的結果只有兩個,true和false,所有的邏輯表示式都一樣,為真就是true,否則就是false。

#include

int main(){

char a[20]="abc\'efgh";

int i=0;

for(i=0;i<20;i++){

if(a[i]=='\'')

printf("false");

if(a[i]==0){

printf("%d",i);

break;

13樓:僧香蝶秘康

a)'\"'

b)'\1011'

c)'\011'

d)'\abc'

'\\'

'\''\f'

'\101'

'\xf'

'\a'

'\}'

'x1f'

2.下面4個選項中,均是正確的八進位制數和十六進製制數的選項是:

這個我還真無法判斷了

a)-10

b)0abc

c)0010

d)0a12

0x8f

-017

-0x11

-0x123

-011

0xc0xf1

-0xa

3.下面4個選項中,均是非法常量的選項是:

為什麼是選

a,'\0xa'應該是合法的吧

a)'as'

b)'\\'

c)-0x18

d)0xabc

-0fff

'\01'

01177

'\0'

'\0xa'

12,456

0xf"a"

14樓:盧初南滿閎

#include

void

main()

//若程式能執行,就認為轉義符合法。

15樓:暢曄曄劍弼

有13個字元。分別如下:1:

\x182:\0123:'3'4:

\015:\06:\x187:

\08:'8'9:'q'10:

'w'11:\01612:'8'13:

\0對於你的問題\012,你得看看轉義字元的定義了。\ddd的乙個轉義字元,注意,只是乙個字元,是用1-3位8進製常數來表示字元的轉義字元。\0當然就算是這個轉義字元了,只有1位。

而\012是有3位,所以當然看成是3位的,而不會看成是1位的\0和『1』和『2』這3個字元了。注意\ddd中的d代表乙個8進製常數字,編譯器會一直讀取到無法讀取為止,無法讀取有兩種情況,一種就是後面的數字根本不是乙個8進製常數字(注意8進製常數字只有0到7),比如\08這裡就不是乙個字元,而是兩個字元了\0和『8』,因為8不是8進製常數字。同理可知\0a,\019這些都不是乙個轉義字元了。

第二種情況就是讀取的位數達到了上限(上限是3位),比如\01234,這裡就不止乙個字元了,而是\012,'3','4'這個3個字元構成的字串了。這樣說你應該能明白了吧。祝學習進步~~~

如何用C語言判斷ip位址是否合法

b類是。255,c類是。然後判斷身份證的長度。在a級ip位址中,網路標識的長度為8位,主機標識的長度為24位,子網掩碼為。b類適用於網路id長度為16位 主機id長度為16位 子網掩碼為。0的中型網路。c類適用於網路標識長度為24位 主機標識長度為8位 子網掩碼為。的小型區域網。3.最後,判斷是否合...

c語言中“0”到底是不是空格,C語言在中,空格是 0 的標誌嗎

充實生活 肯定不是空格啊,那個是個顯示不出來的字元,使用來做字串結束標誌的,ascii 碼裡面好多都顯示不出來的字元,列印出來應該都是這個效果的啊。 金色潛鳥 c語言中 0 不是空格,是空字串。0 是字元常量,null 字元,ascii碼數值0,用作字串結尾符。0 是字串,裡面有一個寫入的字串結尾符...

在c語言中如何輸出空格,在C語言中如何輸出空格

向日葵一樣暖 c語言輸出空格的語句為printf 為轉義字元,用printf 是不能輸出空格的。printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 格式輸出,它是c語言中產生格式化輸出的函式 在 stdio....