杭电 2024 C语言合法标识符

本文介绍了一种通过C语言程序来判断字符串是否为合法C语言标识符的方法。该程序接收多组测试数据,并针对每组数据输出yes或no以表明该字符串是否符合C语言标识符规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言合法标识符

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 60188    Accepted Submission(s): 23837
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
 

//这题太累了,不想做了,想吐了,全部都是字符串,我要睡觉呜呜呜
//我想的方法和这个人做的类似,所以,等下再把自己没搞好的发在下面


#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int i,n,flag; char a[51]; while (scanf("%d",&n)!=EOF) { getchar(); while (n--) { gets(a); if ((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||(a[0]=='_')) { for (i=0,flag=0;i<strlen(a);i++) { if (((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')||(a[i]>='0'&&a[i]<='9'))) { flag++;//总之立一个flag,再用strlen()函数测试下有没有到结束,也是开关函数的作用 if (flag==strlen(a)) printf("yes\n"); } else { printf("no\n"); break; } } } else printf("no\n"); } } return 0;}

#include<stdio.h>
#include<string.h>
int main(){
    int n,i;
    char str[100];
    while(EOF!=scanf("%d",&n))
    {
        getchar();
        while(n--)
        {
            i=0;
            gets(str);
            if(str[0]>47&&str[0]<58)
            {
                printf("no\n");
                break;
            }
            while(str[i]!='\0')
            {
                for(i=0;i<n;i++)
                {
                    if(str[i]=' ')
                    {
                        printf("no\n");
                        break;
                    }
                    if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='b'||str[i]>='A'&&str[i]<='B'||str[i]=='_')
                        continue;
                }
            }
            printf("yes\n");
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值