C語言合法識別符號

2021-10-14 18:33:45 字數 989 閱讀 9284

輸入乙個字串,判斷其是否是c的合法識別符號。

輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,每行是乙個長度不超過50的字串。

對於每組輸入資料,輸出一行。如果輸入資料是c的合法識別符號,則輸出"yes",否則,輸出「no」。

312ajf

fi8x_a

ff ai_2

noyes

no

#include

#include

intmain()

else

printf

("no\n");

}}

1、不能用scanf,只能用gets(),因為輸入的資料可能有空格,scanf遇到空格就終止讀取了,很可能會導致結果錯誤。

2、getchar()必須放在while迴圈前,而不能放到while迴圈內,因為gets()直接把字串後的換行符讀入了,如果此時再用getchar(),就會把下乙個字串的第乙個字元讀取掉,從而導致結果錯誤。

3、

if

(count==len-1)

printf

("yes\n");

else

printf

("no\n"

);

必須放在

if

(a[0]==

'_'||

(a[0

]<=

'z'&&a[0]

>=

'a')

||(a[0]

>=

'a'&&a[0]

<=

'z')

)//判斷首字元是否合法

這一判斷條件內部,如果放到判斷條件外,那麼得到首字元不合法的字串會輸出一次no,在首字元不合法的情況下,count=0,也就是說,count也一定不會等於len-1,就會再輸出一次no。也就是說一共輸出兩次"no\n",就一定會導致結果錯誤。

C語言合法識別符號

輸入乙個字串,判斷其是否是c的合法識別符號。輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,每行是乙個長度不超過50的字串。對於每組輸入資料,輸出一行。如果輸入資料是c的合法識別符號,則輸出 yes 否則,輸出 no 3 12ajf fi8x a ff a...

C語言合法識別符號

time limit 1000ms memory limit 65536kb problem description 輸入乙個字串,判斷其是否是c的合法識別符號。input 輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,每行是乙個長度不超過50的字串。o...

c語言合法識別符號

time limit 1000ms memory limit 65536kb submit statistic problem description 輸入乙個字串,判斷其是否是c的合法識別符號。input 輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,...