杭电Oj刷题(2024)

C语言合法标识符

题目描述:

输入一个字符串,判断其是否是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 main(){
    char a[50];
    int n,len,i,flag;
    while(scanf("%d\n",&n)!=EOF){
        while(n--){
        	flag=0;
            gets(a);                     //字符串输入 
            len = strlen(a);
            if(len>50)                   //每行是一个长度不超过50的字符串
			    flag = 1;
            for(i=0;i<len;i++)
			{
                if(i==0){
                 	if(!(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')))    //首字母为下划线和字母,则为合法标识符 
					{
                 	    flag=1;
						break;	
					}
				}else{
					if(!(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9')))  //标识符由字母,数字和下划线组成 
					{
						flag=1;
						break;
					}
				}  
            }
            if(flag==1)
           	    printf("no\n");
		    else
			    printf("yes\n");
		    
        }
    }     
}
发布了55 篇原创文章 · 获赞 0 · 访问量 1015

猜你喜欢

转载自blog.csdn.net/ZhangShaoYan111/article/details/104135965