HDU2024 C语言合法标识符

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

#include<stdio.h>
#include<string.h>
int ZM(char m);
int SZ(char y);

int main()
{
	int i,n,len,k;
	char s[55];
	scanf("%d",&n);
	getchar();
	while(n --)
	{
		k = 0;
		gets(s);
		len = strlen(s);
		for(i = 0; i < len; i ++)
		{
			if(i == 0)
			{
				if(ZM(s[0])== 1 || s[0] == '_')
					k ++;
			}	
			else
			{
				if(ZM(s[i]) == 1 || s[i] ==  '_' || SZ(s[i]) == 1)
					k ++;
			}	
		}
		if(k == len)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}
int ZM(char x)
{
	if((x>='a' && x<='z') || (x>='A' && x<='Z'))
		return 1;
	else
		return 0;
}
int SZ(char y)
{
	if(y >= '0' && y <= '9')
		return 1;
	else
		return 0;
}

猜你喜欢

转载自blog.csdn.net/queen00000/article/details/81093182