2018计算导论与程序设计习题课九 B. C语言_ex09_10

本文介绍了一个使用C语言编写的程序,该程序能够判断给定字符串是否符合某语言规定的标识符规则。标识符必须由字母、数字和下划线组成,首字符必须是字母或下划线,且长度不超过50。通过定义枚举类型和函数进行字符分类,实现对字符串的高效检查。

索性写一个函数叫whatIsThis(ch)来分类传入的字符是个什么玩意,之后check里判断时也会方便很多。
注意enum声明枚举类型时后跟的是花括号{}

#include <stdio.h>
enum{LETTER,NUMBER,UNDERLINE,OTHERS};

int check(char []);
int whatIsThis(char);

int main(int argc, char const *argv[])
{
	int n,i;
	scanf("%d",&n);
	getchar();
	char set[n][61];

	for(i=0;i<n;i++)
	{	
		gets(set[i]);
		if(check(set[i]))
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}

int check(char str[])
{
	int len=strlen(str),i;
	if(len>50) return 0;
	if(!(whatIsThis(str[0])==UNDERLINE||whatIsThis(str[0])==LETTER)) return 0;
	for(i=0;i<len;i++)
		if(whatIsThis(str[i])==OTHERS)
			return 0;
	return 1;	
}

int whatIsThis(char ch)
{
	if(ch=='_') return UNDERLINE;
	if('0'<=ch&&ch<='9') return NUMBER;
	if('a'<=ch&&ch<='z') return LETTER;
	if('A'<=ch&&ch<='Z') return LETTER;
	return OTHERS;
}

题目描述
某语言规定1、标识符只能由大写字母A到Z、小写字母a到z、数字0到9和下划线_组成;2、标识符的第一个字符必须是字母或下划线;3、标识符长度不能超过50。
请你写一段程序判断给定的字符串是否是合法的标识符。不用考虑保留字。

输入:
第一行为一个整数n(0<n<10),代表测试用例组数,
后边是n行测试用例,每行为一个长度不超过60的字符串(不包含空格)
输出:
共n行,与输入的n行测试用例相对应,如果是合法的标识符则输出yes,否则输出no。

输入样例
2
age
age#
输出样例
yes
no

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值