跳转至

一本通-1134:合法C标识符查

【题目描述】 给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。

C语言标识符要求:

1
2
3
4
5
1.非保留字;

2.只包含字母、数字及下划线(“_”)。

3.不以数字开头。

【输入】 一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。

【输出】 一行,如果它是C语言的合法标识符,则输出yes,否则输出no。

【输入样例】 RKPEGX9R;TWyYcp

【输出样例】 no


#include <bits/stdc++.h>

using namespace std;

char s[105];

bool check()
{
    // int n = strlen(s);
    char *p = s;
    if (isdigit(s[0])) return false;

    // for (int i = 0; i < n; ++i) {
    //  if (isalnum(s[i]) || s[i] == '_') continue;
    //  else return false;
    // }

    while (*p) {
        if (isalnum(*p) || *p == '_') ++p;
        else return false;
    }

    return true;
}


int main()
{
    scanf("%s", s);
    if (check()) printf("yes\n");
    else printf("no\n");

    return 0;
}

两种方法练习