【acm 2024】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<iostream>
#include<string.h>
using namespace std;
int judge1(char s){//判断是否为数字或者为字母 
if((s>='0'&&s<='9')||(s>='a'&&s<='z')||(s>='A'&&s<='Z')) 
return 1;
return 0;
}
int judge2(char s){//判断是否为字母 
if((s>='a'&&s<='z')||(s>='A'&&s<='Z')) 
return 1;
return 0;
}
char s[51];
int main(){
	int n,falg,i;
	cin>>n;
	getchar();

	while(n--){

	gets(s);
	if(!judge2(s[0])&&s[0]!='_'){
		cout<<"no"<<endl;
		continue;
	}
	for( i=1,falg=1;i<strlen(s);i++){
		if(!judge1(s[i])&&s[i]!='_'){
			falg=0;
			break;
		}
	}
	if(falg==1) cout<<"yes"<<endl;
	else cout<<"no"<<endl;
	}

	return 0;
}
发布了42 篇原创文章 · 获赞 18 · 访问量 396

猜你喜欢

转载自blog.csdn.net/weixin_42918559/article/details/104074655