此题只要抓住C语言合法标识符的命名规则就可以了(1、首元素只能是下划线或是字母,2、除首元素外的元素只能是数字、下划线和字母),先判断输入的字符串首元素是否符合规则,接着再判断其他元素。要注意的是因为输入的是字符串,则在判断元素是否是数字时是与字符数字判断!!!
代码:
#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;
}