杭电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
#include
using namespace std;
int main()
{
 int n,i,len,b;
 char a[50];
 cin>>n;
    getchar();
 for(i=0;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    {
    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"<    else
    cout<<"no"<   }
  else
   cout<<"no"<  }
 return 0;
}
 
 

 

 

你可能感兴趣的:(杭电)