3904: 零起点学算法105——C语言合法标识符Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 482 Solved: 181
Description输入一个字符串,判断其是否是C的合法标识符。Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。Sample Input3 12ajf fi8x_a ff ai_2Sample Outputno yes noHINT
C语言的标识符指保留字(for,int,if等)和用户定义的变量名。
C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或者下划线。
Source
hdu2024
我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
int i,flag,n,j;
scanf("%d",&n);
getchar();
for(j=1;j<=n;j++)
{
gets(str);
flag=0;
for(i=0;str[i]!='\0';i++)
{
if('0'<=str[0]&&str[0]<='9')
{flag=1;
break;}
else
{if(('A'>str[i]&&str[i]>'Z')&&('0'>str[i]&&str[i]>'9')&&str[i]!='_'&&('a'>str[i]&&str[i]>'z')||str[i]==' ')
{flag=1;
break;} }
}
if(flag==0)
{printf("yes\n");}
else
{printf("no\n");}
}
return 0;
}
按题目的运行结果对了可是提交之后错的(WA),麻烦楼主帮忙看下
