1134:合法C标识符查
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 56855 通过数: 22070【题目描述】
给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。
C语言标识符要求:
1.非保留字;
2.只包含字母、数字及下划线(“_”)。
3.不以数字开头。
【输入】
一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。
【输出】
一行,如果它是C语言的合法标识符,则输出yes,否则输出no。
【输入样例】
RKPEGX9R;TWyYcp【输出样例】
no
例程:
#include<bits/stdc++.h>
#include<iomanip>
#include<string>
using namespace std;
int main() {
char a[21];
bool dif=false;
cin.getline(a,21);
if(a[0]>=48&&a[0]<=57) { //判断第一位是否为数字,关于ASCLL码,可以看我的c++详解ASCLL
cout<<"no"; //输出no
return 0;
}
for(int i=0; i<strlen(a); i++) {
if(a[i]>=48&&a[i]<=57||a[i]==95||a[i]>=65&&a[i]<=90||a[i]>=97&&a[i]<=122) {
dif=true; //判断a[i]是否满足题目要求————只包含字母、数字及下划线
} else {
dif=false;
break; //跳出循环
}
}
if(dif==true) cout<<"yes"; //输出
if(dif==false) cout<<"no";
return 0;
}
关于ascll码,可以看:
该程序用于检查输入的字符串是否符合C语言标识符的要求,即非保留字,仅含字母、数字和下划线,且不以数字开头。通过ASCII码判断字符类型,如果不符合规则则输出no,否则输出yes。
229





