链接http://acm.hdu.edu.cn/showproblem.php?pid=2024
思路
根据定义写
1. 所有标识符必须由一个字母(a~z或A~Z)或下划线(_)开头;
2. 标识符的其它部分可以用字母、下划线或数字(0~9)组成;
3. 大小写字母表示不同意义, 即代表不同的标识符,如cout和Cout;
在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
4:关键字是保留字,不能用来做标识符(如变量名),例如:int double; 是错误的,因为 double 是关键字,不能做变量名。使用关键字来做变量名是一种语法错误,不能通过编译!下表列出了 C 语言的所有关键字:
auto enum restrict unsigned
break extern return void
case float short volatile
char for signed while
const goto sizeof _Bool
continue if static _Complex
default inline struct _Imaginary
do int switch
double long typedef
else register union
AC代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
char s[60];
bool pd(char ch){
return (ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')||(ch=='_');
}
bool pd2(char ch){
return (ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')||(ch=='_')||(ch>='0'&&ch<='9');
}
int main(){
int t;
for(scanf("%d\n",&t);t;t--){
gets(s);
int i=0;
for(;i<strlen(s);i++){
if(!pd(s[0])){
break;
}
if(i>0 &&!pd2(s[i]) )
break;
}
if(i==strlen(s))
printf("yes\n");
else
printf("no\n");
}
}