James在一节C++课程上,准备为自己的程序定义变量名称。告诉James,一个合法的变量名应该满足如下的三个条件:
1、只能由字母(大写或者小写)、数字及下划线(_)组成
2、不能以数字开头
3、不能是C++中有特殊含义的单词,由于James是C++的初学者,只学过int、double、cout、cin这四个有特殊含义的单词,因此James只要避开这几个单词就可以。
请你编程帮助James判断他定义的变量名是否合法。
下表中列举了一些合法的变量名和非法的变量名的案例供你参考。
合法变量名案例
非法变量名案例
x
sum
sum_x
sum2
_sum
INT注意:这是合法的,因为在C++中是区分大小写的,int是表示整数类型,但INT不是);
sum x:有空格(只能是字母、数字或下划线)
1x:以数字开头
int:有特殊含义
a#:有特殊字符“#”(只能是字母、数字、下划线)。
输入格式
一行,包含一个字符串,是James为变量起的名字,且长度不大于20。
输出格式
一行,如果是合法的C++变量名,则输出yes,否则输出no。
样例输入
sum
样例输出
yes
http://ybt.ssoier.cn:8088/problem_show.php?pid=1134
类似于这个诶
#include <iostream>
using namespace std;
int main() {
string str = "in cout dkhjshadj abab";
// if (str.find("cin") == string::npos) cout << 12345678 << endl;
// cout << str.find("cin") << endl;
cin >> str;
if (str[0] >= '0' && str[0] <= '9') {
cout << "no" << endl;
return 0;
}
for (int i = 0; i < str.length(); i++) {
if (!((str[i] >= '0' && str[i] <= '9') || (str[i] >= 'A' && str[i] <= 'Z') ||
(str[i] >= 'a' && str[i] <= 'z') || str[i]=='_'))
{
cout << "no" << endl;
return 0;
}
}
if (str.find("cin") == string::npos && str.find("cout") == string::npos && str.find("int") == string::npos && str.find("double") == string::npos){
cout << "yes" << endl;
return 0;
}else
cout << "no" << endl;
return 0;
}
这题不难,8分钟内,发给你