杭电oj2024

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 86903    Accepted Submission(s): 33432


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
 

Author
lcy
 

Source
C语言程序设计练习(四)
 
答案:

#include
#include
#include
#include


void main()
{
int n;
char str[50];
int len;
int i;
int sign;
while(~scanf("%d\n",&n))
{
while(n--)
{
sign = 0;
gets(str);
len = strlen(str);
if(len>63)
sign = 1;
for(i=0;i {
if(i==0)
{
if(!((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')||str[i]=='_'))
{
sign = 1;
break;
}
}
else
{
if(!((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')||str[i]=='_'||(str[i]>='0'&&str[i]<='9')))
{
sign = 1;
break;
}
}
}
if(sign == 1)
printf("no\n");
else 
printf("yes\n");
}
}
}

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