| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1399 人关注过本帖, 1 人收藏
标题:判断合法标识符
只看楼主 加入收藏
Hhu_TF
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:63
注 册:2021-11-10
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
判断合法标识符
大佬们,求助!(小萌新一只)
题目描述
在学习了C语言后,我们知道:一个合法的C语言标识符必须满足下述要求:
(1)非保留字
(2)只包含字母、数字、下划线("_")
(3)不以数字开头
下面,给定一个不含空白符的字符串(题目保证输入字符串一定不是C语言保留字),判断该字符串是否为合法C语言标识符。
输入格式:
输入为一行,包括一个不含空白字符的字符串,字符串长度不超过20。
输出格式:
输出为一行,若上述字符串为合法标识符,输出yes,否则输出no。
输入样例:
HHH_EST
输出样例:
yes
搜索更多相关主题的帖子: 输出 输入 合法 标识符 字符串 
2021-11-10 20:05
baolis
Rank: 2
来 自:呼啦瓦星
等 级:论坛游民
帖 子:39
专家分:59
注 册:2021-11-10
收藏
得分:7 

#include<stdio.h>
int main() {
    int i, flag;
    char a[110];
    gets(a);
    flag = 1;//先假设该标识符合法
    for (i = 0; a[i] != '\0'; i++) {
        if (!(a[i] >= 'a' && a[i] <= 'z')) {
            if (!(a[i] >= 'A' && a[i] <= 'Z')) {
                if (!(a[i] >= '0' && a[i] <= '9')) {
                    if (!(a[i] == '_')) {
                        flag = 0;
                        break;
                    }
                }
            }
        }
    }//如果标识符中存在不是字母或数字或下划线,则flag = 0
    if (flag == 1 && a[0] >= '0' && a[0] <= '9') {
        flag = 0;//如果标识符中只有字母,数字和下划线
    }//则判断第一个字符是否是数字,若为数字,则不合法,flag = 0
    if (flag) printf("YES\n");
    else printf("NO\n");
    return 0;
}

  printf("Hello, world!\n"); cout << "Hello, world!" << endl;
2021-11-10 22:05
Hhu_TF
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:63
注 册:2021-11-10
收藏
得分:0 
回复 2楼 baolis
感谢!
2021-11-10 22:53
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:10 
scanf的%[] 比较合适处理这种问题
程序代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
    char str[40], flag;
    scanf("%[_A-Za-z0-9]%c", str, &flag);
    puts(flag != '\n' || '0' <= *str && *str <= '9' ? "no" : "yes");
    return 0;
}

https://zh.
2021-11-11 09:23
Hhu_TF
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:63
注 册:2021-11-10
收藏
得分:0 
回复 4楼 lin5161678
还可以这么简单呀,谢谢大佬!
2021-11-11 23:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:3 
在学习了C语言后,我们知道:一个合法的C语言标识符必须满足下述要求:
(1)非保留字
(2)只包含字母、数字、下划线("_")
(3)不以数字开头
这是错误的,上个世纪末,标准就规定也可以使用“Universal Character Name”,参见 https://zh.

(1)非保留字
保留字是哪些?你可以看看上面那个链接中的“保留标识符”
2021-11-12 16:03
快速回复:判断合法标识符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011843 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved