题目描述
James在一节C++课程上,准备为自己的程序定义变量名称。老师告诉James,一个合法的变量名应该满足如下的三个条件:
1、只能由字母(大写或者小写)、数字及下划线(_)组成
2、不能以数字开头
3、不能是C++中有特殊含义的单词,由于James是C++的初学者,只学过int、double、cout、cin这四个有特殊含义的单词,因此James只要避开这几个单词就可以。
请你编程帮助James判断他定义的变量名是否合法。
下表中列举了一些合法的变量名和非法的变量名的案例供你参考。
输入:不超过20的字符串
输出:yes或者no
c++代码
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
bool isValidVariableName(const string& name) {
//检查长度是否超过20
if(name.length()>20){
return false;
}
// 检查是否以数字开头
if (isdigit(name[0])) {
return false;
}
// 检查是否包含字母数字下划线
for (char c : name) {
if (!isalnum(c) && c != '_') {
return false;
}
}
// 检查是否是C++中有特殊含义的单词
string keywords[] = {"int", "double", "cout", "cin"};
for (const string& keyword : keywords) {
if (name == keyword) {
return false;
}
}
// 变量名合法
return true;
}
int main() {
string variableName;
// cout << "请输入变量名:";
getline(cin,variableName); //注意有空格的输入也是错的
if (isValidVariableName(variableName)) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}