信息学奥赛一本通C++语言——1134:合法C标识符查

【题目描述】
给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。

C语言标识符要求:

1.非保留字;

2.只包含字母、数字及下划线(“_”)。

3.不以数字开头。

【输入】
一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。

【输出】
一行,如果它是C语言的合法标识符,则输出yes,否则输出no。

【输入样例】
RKPEGX9R;TWyYcp
【输出样例】
no

规则1提到的非保留字,因保留字题目没有给出,本次不做判断

#include
#include
#include
using namespace std;
int main() {
	int len;
	bool flag=1;
	char s[20];
	gets(s);
	len=strlen(s);
	for(int i=0; i<len; i++) {
		if(s[0]>='0'&&s[0]<='9') {//不以数字开头
			cout << "no" << endl;
			flag=0;
			break;
		}
		if(!( (s[i]>='0'&&s[i]<='9') || (s[i]>='A'&&s[i]<='Z') 
			|| (s[i]>='a'&&s[i]<='z') || s[i]=='_') ) {//只包含字母、数字及下划线(“_”)
			cout << "no" << endl;
			flag=0;
			break;
		}
	}
	if(flag==1) {
		cout << "yes" << endl;
	}
	return 0;
}

你可能感兴趣的:(信息学奥赛)