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
这道题考的是c语言的合法标识符的知识
简单介绍一下c语言的合法标识符:
1. 所有标识符必须由一个字母(a~z或A~Z)或下划线(_)开头;
2. 标识符的其它部分可以用字母、下划线或数字(0~9)组成;
3. 大小写字母表示不同意义, 即代表不同的标识符,如cout和Cout;
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
int n,b,i,t;
char a[55];
cin>>n;
getchar();
while(n--)
{
t=0;
gets(a);
b=strlen(a);
if((a[0]>='a'&&a[0]<='z')||a[0]=='_'||(a[0]>='A'&&a[0]<='Z'))
{
t++;
for(i=1;i<b;i++)
{
if((a[i]>='0'&&a[i]<='9')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_'||a[i]>='a'&&a[i]<='z'))
{
t++;
}
}
if(b==t)
printf("yes\n");
if(b!=t&&t!=0)
printf("no\n");
}
else
printf("no\n");
}
return 0;
}