描述
给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。
C语言标识符要求:
1. 非保留字;
2. 只包含字母、数字及下划线(“_”)。
3. 不以数字开头。
输入
一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。
输出
一行,如果它是C语言的合法标识符,则输出yes,否则输出no。
样例输入
RKPEGX9R;TWyYcp
样例输出
no
#include<stdio.h>
#include<string.h>
int main()
{
char s[21]={0};
int i,flag=1,len;
gets(s);
len=strlen(s);
if(s[0]>='0'&&s[0]<='9'){ //首字母为数字,直接不符合题意,无需进行循环
flag=0;
}
if(flag==1){ //首字母满足不是数字,遍历检查每一项
for(i=0;i<len;i++){
if((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')||s[i]=='_'){
flag=1;
} else {
flag=0;
}
if(flag==0){ //发现非合法标识符,直接结束循环
break;
}
}
}
if(flag==1){ //是合法标识符
printf("yes\n");
}
if(flag==0){ //非合法标识符
printf("no\n");
}
return 0;
}