qq_18147713 2021-12-16 12:32 采纳率: 73.8%
浏览 30
已结题

C语言编程问题求解答

题目描述
C语言中的合法标识符的定义为:以下划线或字母开头的字母数字串(含下划线)。
完成一个程序实现对输入的n个字符串进行判定,是否为C语言的合法标识符。如果是则输出1,不是则输出0

关于输入
输入的第一行为一个数字,表明有几个输入字串。
后面每一行为一个长度不超过80的字符串。

关于输出
对所有输入的字符串进行判断,是合法标识符则输出1,回车。否则输出0,回车。

例子输入
5
hello_world
my god
i
_stdio
008A
例子输出
1
0
1
1
0

  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-16 12:40
    关注
    
    #include <stdio.h>
    #include <ctype.h>
    
    #define N 80
    char s[N + 1];
    
    int main(void)
    {
        int n, ans;
        char *t;
    
        scanf("%d", &n);
        getchar();
        while (n--)
        {
            gets(s);
    
            if (!isalpha(s[0]) && s[0] != '_')
            {
                // 非字母或下划线开头则不是标识符
                ans = 0;
            }
            else
            {
                ans = 1;
                t = s + 1;
                while (*t && ans)
                {
                    // 字母、下划线或数字,则检查下一个字符
                    if (isalpha(*t))
                    {
                        t++;
                        continue;
                    }
                    if (*t == '_')
                    {
                        t++;
                        continue;
                    }
                    if (isdigit(*t))
                    {
                        t++;
                        continue;
                    }
                    // 非字母、下划线或数字则不是标识符
                    ans = 0;
                    break;
                }
            }
    
            printf("%d\n", ans);
        }
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启