杭电ACM-2024

题目:

2024题

代码:

#include<stdio.h>
int main()
{
    char a[55];
    int n,i,flag1,flag2;
    scanf("%d",&n);
    getchar();
    while(n>0)
    {

        flag1=0;
        flag2=0;
        gets(a);
        for(i=0;a[i]!='\0';i++)
        {
            if(((a[0]>='A'&&a[0]<='Z')||(a[0]>='a'&&a[0]<='z')||a[0]=='_'))
            {
                flag1=0;
            }
            else
            {
                flag1=1;
                break;
            }
            if(i!=0)
            {
                if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')||a[i]=='_'||(a[i]>='0'&&a[i]<='9'))
                {
                    flag2=0;
                }
                else
                {
                    flag2=1;
                    break;
                }
            }
        }
        if(flag1==1||flag2==1)
            printf("no\n");
        else
            printf("yes\n");
        n--;
    }
    return 0;
}

C语言合法标识符百科:

1. 所有标识符必须由一个字母(a~z或A~Z)或下划线(_)开头;
2. 标识符的其它部分可以用字母、下划线或数字(0~9)组成;
3. 大小写字母表示不同意义, 即代表不同的标识符,如cout和Cout;
在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
4:关键字是保留字,不能用来做标识符(如变量名),例如:int double; 是错误的,因为 double 是关键字,不能做变量名。使用关键字来做变量名是一种语法错误,不能通过编译!下表列出了 C 语言的所有关键字:
auto enum restrict unsigned
break extern return void
case float short volatile
char for signed while
const goto sizeof _Bool
continue if static _Complex
default inline struct _Imaginary
do int switch
double long typedef
else register union

注意getchar()的位置,作用是吃回车,但是在字符串循环中,注意不要放进循环里面!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容