杭电2024 C语言合法标识符

此题只要抓住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;
}
 
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章