HDOJ 2024 C语言合法标识符

        判断输入的字符串是否是一个合法的C语言标识符。简单的字符串处理,不过你要记得字符串满足什么样的条件才算是合法的C语言标识符——

        1只能由字母、数字、下划线组成;

        2数字不能是首字符(比如3he就不合法)

        剩下的就是字符串处理的细节,要细心一点。

#include <cstdio>
#include <cctype>
/**
 * 合法的标识符由下划线、字母、数字(数字不能开头)
 */
const int MAX_SIZE = 50 + 2;// 字符串长度 + 预留给换行符'\n'和终止符'\0'的两个长度
char token[MAX_SIZE];
//#define yangyuan
int main()
{
#ifdef yangyuan
	freopen("in.txt", "r", stdin);
#endif // yangyuan
    int n;
    scanf("%d", &n);
    getchar();
    while (n--)
	{
        fgets(token, MAX_SIZE, stdin);// 注意fgets会将最后的换行符'\n'读入
        if (0 == isalpha(token[0]) && '_' != token[0])	// 只能以字母或者下划线开头
		{
            printf("no\n");
            continue;
		}
		int yes = true;
        for (int i = 0; i < MAX_SIZE && token[i] != '\n' && token[i] != '\0'; ++i)
		{
            if (0 == isalnum(token[i]) && '_' != token[i])// 不是字母数字且不是下划线
            {
            	yes = false;
            	break;
            }
		}
        if (yes)
			printf("yes\n");
		else
			printf("no\n");
	}
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值