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

時間 2021-08-11 17:32:25

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]=='\'')

printf("false");

if(a[i]==0){

printf("%d",i);

break;

2樓:僧香蝶祕康

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"

3樓:盧初南滿閎

#include

void

main()

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

4樓:暢曄曄劍弼

有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語言轉義字元x41為A,為什麼??16進位制不是0x41嗎?0x開頭

要不然 x41 怎麼叫做a的 轉義 字元!因為c規定轉義字元 x41 中 是轉義字元引導符,後跟一個x表示x後面的數字是十六進位制表示法,用 括起來表示一位元組ascii碼。按這種解釋,x41 不就和0x41是一回事嗎?它們都表示字元a或a的ascii碼值! 杳哈哈哈 x說明的是十六進位制啊 然後4...

c語言strlen判斷字元長度的問題

小八 不是6應該是5吧 因為你輸入的長度是4再加 0 所以是5 include include main 試試這樣的,你要是一個字元一個字元的輸入,if a i n 就沒意義了。 你定義的字元陣列char 4 他的長度就是5 上你的scanf 輸入後有個 0就6了 scanf s a 這樣 c語言中...

c語言怎麼加密字元,C語言怎麼加密字元

自我程式設計 我沒注意只要小寫,我寫的是大小寫都可以的,另外附送輸入驗證。include include int main else printf 原字串為 s n加密後的字串為 s n str,str2 return 0 c語言本身是不能加密字元的,但你可以寫一個加密程式來加密。為敘述方便,不妨設...