文档章节

杭电2024

老年基德
 老年基德
发布于 2014/04/09 10:58
字数 413
阅读 15
收藏 0

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33428    Accepted Submission(s): 13470


Problem Description

输入一个字符串,判断其是否是C的合法标识符。

 


Input

输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。

 


Output

对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

 


Sample Input

3
12ajf
fi8x_a
ff  ai_2

 


Sample Output

no
yes
no

 

要注意C语言合法标识符:

由字母、、数字这三个方面组成,但开头必须是字母或。
另外,关键字不能是,如main等。


只要将输入的字符逐个判断即可,代码如下:

#include <stdio.h>
#include <string.h>

void judge (char a[50]);

int main (void)
{
	int n;

	scanf("%d\n",&n);

	while (n!=0)
	{
		char a[50];
		gets(a);                       //注意gets函数接收数组时是全部接收之前输入的内容,解决办法是上边接收n时加个\n这样不会接收空格,然后在gets函数前面定义数组a,成功避免了gets函数把n也接收了。

		judge (a);

		n--;
	}

	return 0;
}


void judge (char a[50])                                 //judge函数是判断c语言合法标识符的函数
{
	int i,L;
	L = strlen(a);

	   if( ('a'<=a[0] && a[0]<='z') || ('A'<=a[0] && a[0]<='Z') ||a[0]=='_')

		{ 
		  for(i=1;i<L;i++) 
			{
			  if ( 
                   ('0'<=a[i] && a[i]<='9') || 
                   ('a'<=a[i] && a[i]<='z') || 
                   ('A'<=a[i] && a[i]<='Z') || 
                   (a[i]=='_')  
				 )
                              
				continue;       

				else break; 
			}

			if(i==L) printf("yes\n");

			else printf("no\n");     
		}

	   else printf("no\n");        


	return;
}


© 著作权归作者所有

上一篇: 杭电2025
下一篇: 杭电2023
老年基德
粉丝 3
博文 63
码字总数 42917
作品 0
西安
程序员
私信 提问
研究机构预计亚马逊市值2024年有望达到2.5万亿美元

8 月 23 日消息,据国外媒体报道,研究机构发布的报告显示,电商巨头亚马逊的市值有望在 2024 年达到2. 5 万亿美元。 预计亚马逊市值六年后达到2. 5 万亿美元的,是研究机构MKM Partners,其...

全部原谅
2018/08/24
0
0
LiDAR 商机可期,亚太成长动能最强

根据市场顾问公司 Esticast Research 报告,光学雷达(LiDAR)市场规模 2016 年为 3.3 亿美元,预估 2024 年将扩增至 14 亿美元,2017-2024 年平均复合年增率(CAGR)达 21.4%。 报告指出,北...

moneydj
2018/01/26
0
0
jquery.rotate插件实现抽奖的旋转效果

jquery.rotate插件实现抽奖的旋转效果 效果描述: 正好最近公司在做一个抽奖的效果 年底了,各大电商类的网站都要搞个促销活动,然后抽奖 这是一款用jquery.rotate.js旋转插件实现的动画效果...

wybo521
2016/01/17
147
0
Elasticsearch——Date Math在索引中的用法详解

在elasticsearch中,有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式。 更多内容参考Elasticsearch翻译汇总 基于日期数学表达式的索引 模式如下: 其中各个字段含义为...

青夜之衫
2017/12/05
0
0
基于Python的网页抓取工具

今天为了抓去杭电上的ACM,于是各种查资料,用python做成了一个自动抓取相应玩个信息的程序 主要用到了Python的urllib模块和re模块 基本思路,先抓取网页的全部源代码,然后在用正则提取相应的内...

程序猿1号
2013/08/12
297
0

没有更多内容

加载失败,请刷新页面

加载更多

DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
43分钟前
3
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
4
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部