[C.C++] C语言合法标识符-c语言

666 0
Honkers 2025-3-27 08:18:05 | 显示全部楼层 |阅读模式

改了好久,希望能帮到大家


题目:

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

Input

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

Output

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

Sample

InputcopyOutputcopy
  1. 3
  2. 12ajf
  3. fi8x_a
  4. ff ai_2
复制代码
  1. no
  2. yes
  3. no
复制代码

解答:

 #include
#include
#include

int main() {    

    int n;
    scanf("%d",&n);//输入组数 


    getchar();//这个地方我看了好久

//gets函数会识别到n后的\n,所以要加getchar,将\n回收掉

    int ff; //定义一个变量以后要用 


    while(n--)
    {
        ff=99;
        
        char jj[56];
        
        gets(jj);//用于输入字符串
        int i;
        
        //for(i=0;i //        {
//            printf("jj[%d]=%c\n",i,jj);
//        }//可以用于检测
        
        if(jj[0]>='0'&&jj[0]<='9')
        {
            printf("no\n");
            ff=88;
        }
        
        else//第一个数字不是数字 
        {
            for(i=0;i             {
                
                if(!((jj>='0'&&jj<='9')||(jj>='a'&&jj<='z')||(jj>='A'&&jj<='Z')||(jj=='_')    ))
                {
                    printf("no\n");
                    ff=88;
                    break;
                }
            
            }
            if(ff==99)
            printf("yes\n");
        }
    }

return 0;
}
 

重点介绍:

1. `gets`函数是C语言中的一个输入函数,用于从标准输入(通常是键盘)读取一行字符串,并将其存储到指定的字符数组中。它会读取字符,直到遇到换行符`\n`为止,然后将换行符替换为字符串结束标志`\0`。

示例代码

#include

int main() {

char str[100];

 gets(str);//不用加取地址

 return 0;

可见gets函数可以读空格

如果用scanf("%s",jj);来输入的话,不能将空格输入,结果如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4010
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行