您的位置:首页 > 编程语言 > C语言/C++

hdoj 2024 C语言合法标识符

2016-04-03 00:10 411 查看


C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 56946 Accepted Submission(s): 22470



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

自定义标识符:1)以下划线或英文字母开头;2)只由英文字母(大小写均可),数字,下划线;3)不能和关键字相同

代码:
(AC)#include<cstdio>
#include<cstring>

int main()
{
int t,f,i,l;
char a[55];
scanf("%d",&t);
getchar();
while(t--)
{
// scanf("%s",a);
gets(a);//不可以用scanf,因为是带有空格的字符串
l=strlen(a);
if(!((a[0]=='_')||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')))
{
printf("no\n");
continue;
}
f=0;
for(i=1;i<l;i++)
{
if(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9'))
continue;
else
{
f=1;
break;
}
}
if(f)
printf("no\n");
else
printf("yes\n");
}
return 0;
}
AC/*#include<cstdio>
#include<cstring>
int main()
{
int t;
char a[55];
int f;
scanf("%d",&t);
getchar();
while(t--)
{
gets(a);
int l=strlen(a);
if(!((a[0]=='_')||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')))
{
printf("no\n");
continue;
}
int ans=0;
for(int i=0;i<l;i++)
{
if(a[i]=='_'||(a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A')||(a[i]<='9'&&a[i]>='0'))
{
ans++;

}
}
if(ans==l)
printf("yes\n");
else
printf("no\n");
}
return 0;
}*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: