1383: 【作】【入门】合法的变量名?
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:13
解决:5
题目描述
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
提示
#include <bits/stdc++.h> using namespace std; int main(){ string s; bool f = true; //假设合法 getline(cin,s); //判断非法的情况 //1、变量名含有除了字母数字下划线以外的字符 for(int i = 0;i<s.size();i++){ if((isalpha(s[i])||isdigit(s[i])||s[i] == '_')==false){ f=false; break; } } //2、以数字开头 if(isdigit(s[0])){ f=false; } //3、含有4个关键词 if(s == "int" || s =="double" || s == "cin" || s == "cout"){ f=false; } if(f){ cout<<"yes"; }else{ cout<<"no"; } return 0; }