杭電2024 C語言合法識別符號
阿新 • • 發佈:2018-12-22
此題只要抓住C語言合法識別符號的命名規則就可以了(1、首元素只能是下劃線或是字母,2、除首元素外的元素只能是數字、下劃線和字母),先判斷輸入的字串首元素是否符合規則,接著再判斷其他元素。要注意的是因為輸入的是字串,則在判斷元素是否是數字時是與字元數字判斷!!!
Problem Description 輸入一個字串,判斷其是否是C的合法識別符號。Input 輸入資料包含多個測試例項,資料的第一行是一個整數n,表示測試例項的個數,然後是n行輸入資料,每行是一個長度不超過50的字串。
Output 對於每組輸入資料,輸出一行。如果輸入資料是C的合法識別符號,則輸出"yes",否則,輸出“no”。
Sample Input 3 12ajf fi8x_a ff ai_2 Sample Output no yes no
程式碼:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n,i,len,b;
char a[50];
cin>>n;
getchar();
for(i=0;i<n;i++)
{
cin.getline(a,50,'\n');
len=strlen(a);
if(a[0]=='_' ||(a[0]>='A' && a[0]<='Z') || (a[0]>='a' && a[0]<='z'))
{
for(b=1;b<len;b++)
{
if((a[b]=='_' )||(a[b]>='A' && a[b]<='Z') || (a[b]>='a' && a[b]<='z') ||(a[b]>='0' && a[b]<='9' ))
continue;
else
break;
}
if(b==len)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
else
cout<<"no"<<endl;
}
return 0;
}