注意事项:
1、C语言合法标识符必须由字母、下划线和数字组成,且首字符不能是数字。另外,也不能和关键字重复,如“main”。
本题不考虑关键字重复问题。
2、使用标准库可以大大简化代码。
3、注意包含空格的字符串输入问题。
/*****************************************************
*Programme:判断C语言合法标识符
输入长度不超过50的字符串,判断是否合法
*Programmer:By
*Date:2018/02/06
*****************************************************/
#include<iostream>
#include<stdio.h>
#include <string>
#include <ctype.h>
using namespace std;
int main()
{
int n; //数据组数
string str;
bool flag;
while(cin >> n ){
getchar(); //接收输入n之后的回车,否则会被当做第一组数据读入
for(int i = 0;i < n;++ i){
getline(cin,str); //cin不能读入空格
flag = true;
if (isalpha(str[0]) || str[0] == '_'){ //使用标准函数可以简化代码
for (int i = 1; i < str.size();++ i){
if (!isalnum(str[i]) && str[i] != '_'){
flag = false;
break;
}
}
}
else flag = false;
if(flag) cout << "yes" <<endl;
else cout << "no" <<endl;
}
}
return 0;
}