C语言合法标识符
Time Limit: 1000 ms
Memory Limit: 65536 KiB
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
Hint
Source
HDOJ
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
char data[105];
int n,i,j,flag,flag1,len;
while(~scanf("%d",&n))
{
getchar();
for(j=1;j<=n;j++)
{
gets(data);
if((data[0]>='a'&&data[0]<='z')||(data[0]>='A'&&data[0]<='Z')||(data[0]=='_'))
flag=1;
else
flag=0;
len=strlen(data);
if(len>50)
flag=0;
for(i=1;i<len;i++)
{
if((data[i]>='a'&&data[i]<='z')||(data[i]>='A'&&data[i]<='Z')||(data[i]=='_')||(data[i]>='0'&&data[i]<='9'))
flag1=1;
else
{
flag1=0;break;
}
}
if(flag==1&&flag1==1)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}