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

2024 C语言合法标识符

2015-07-20 11:41 316 查看

C语言合法标识符

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

Total Submission(s): 46159    Accepted Submission(s): 18595


[align=left]Problem Description[/align]
输入一个字符串,判断其是否是C的合法标识符。

 

[align=left]Input[/align]
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。

 

[align=left]Output[/align]
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

 

[align=left]Sample Input[/align]

3
12ajf
fi8x_a
ff ai_2

 

[align=left]Sample Output[/align]

no
yes
no

 

合法的标识符,由字母数字下划线组成,第一个字符不能是数字,用字符数组存下来,用一个开关标记是否符合题意,单个判断就可以了,代码比较繁琐,可以用写一个函数,比较直观一些...

 

#include<stdio.h>
#include<string.h>
bool hefa(char x)
{
if(!((x>='a'&&x<='z')||(x>='A'
&&x<='Z')||(x>='0'&&x<='9')||(x=='_')))
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int i,t,ok;char x[55];
scanf("%d",&t);
getchar();
while(t--)
{
memset(x,0,sizeof(x));
gets(x);ok=1;
if(hefa(x[0])==1&&!(x[0]>='0'&&x[0]<='9'))
{
for(i=1;x[i]!=0;++i)
{
if(hefa(x[i])==0)
{
ok=0;
break;
}
}
}
else
{
ok=0;
}
if(ok==1)
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: