杭电acm2024 c语言合法标识符
2017-08-14 00:06
337 查看
所谓标识符,就是你起的一个名字。c/c++中,是你用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等的。(就好像你父母有了你以后给你起的名字)~~ c/c++有效标识符的构成规则如下
(1)第一个字符必须是字母(不分大小写)或下划线(_);
(2)后跟字母(不分大小写)、下划线(_)或数字组成;
(3)标识符中的大小写字母有区别。
(4)不能与c编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。比如,不能将标识符命名为float,auto,break,case,this,try,for,while,int,char,short, unsigned,等等
这就简单了吧。。合法标识符是啥都忘了。。。
cin输入结束后,输入流中还有一个换行符\n,这个时候如果用gets或者getline,即使不输入,也会立马会得到一个换行符。。。。。所以要加上一个getchar()之类的消除影响
(1)第一个字符必须是字母(不分大小写)或下划线(_);
(2)后跟字母(不分大小写)、下划线(_)或数字组成;
(3)标识符中的大小写字母有区别。
(4)不能与c编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。比如,不能将标识符命名为float,auto,break,case,this,try,for,while,int,char,short, unsigned,等等
这就简单了吧。。合法标识符是啥都忘了。。。
#include <iostream> #include <string.h> using namespace std; int main() { int n,sum; int flag; cin>>n; getchar(); //消除换行符\n对cin.getline的影响 while(n--) { char ch[51]; cin.getline(ch,51); flag=0; sum=0; int len=strlen(ch); if(!(ch[0]=='_'||(ch[0]>='a'&&ch[0]<='z')||(ch[0]>='A'&&ch[0]<='Z'))) { cout<<"no"<<endl; continue; } for(int i=0;i<len;i++) { if(ch[i]=='_'||(ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')||(ch[i]<='9'&&ch[i]>='0')) { sum++; } } if(sum==len) { cout<<"yes"<<endl; } else { cout<<"no"<<endl; } } return 0; }
cin输入结束后,输入流中还有一个换行符\n,这个时候如果用gets或者getline,即使不输入,也会立马会得到一个换行符。。。。。所以要加上一个getchar()之类的消除影响
相关文章推荐
- 杭电c语言2024c语言合法标识符
- 杭电ACM 2024:C语言合法标识符
- 杭电ACM2024:C合法标识符
- 杭电OJ2024-C语言合法标识符
- 杭电2024(C语言合法标识符)
- 杭电Hd 2024 C语言合法标识符
- 【杭电oj2024】C语言合法标识符
- 杭电 2024 C语言合法标识符
- 杭电2024 C语言合法标识符
- 杭电ACM 2024 C语言合法标识符
- 杭电ACM 2024 C语言合法标识符
- 杭电ACM 2024 C语言合法标识符
- 杭电ACM--HDU2024 c语言合法标识符
- 【杭电】[2024]C语言合法标识符
- 杭电 2024 ( C语言合法标识符 ) java
- 杭电2024:C语言合法标识符
- 杭电 acm 2024 C语言合法标识符
- C语言合法标识符
- C语言合法标识符
- HDU 2024 -- C语言合法标识符