您的位置:首页 > 编程语言 > C语言/C++

杭电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,等等

这就简单了吧。。合法标识符是啥都忘了。。。

#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()之类的消除影响
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: