信息學(xué)C++:合法 C 標(biāo)識符
題目描述
給定一個不包含空白符的字符串,請判斷是否是C語言合法的標(biāo)識符號(注:題目保證這些字符串一定不是C語言的保留字)。C語言標(biāo)識符要求:1. 非保留字,本題不用判斷;2. 只包含字母、數(shù)字及下劃線(“_”)。3. 不以數(shù)字開頭。
輸入格式
一行,包含一個字符串,字符串中不包含任何空白字符,且長度不大于20。
輸出格式
一行,如果它是C語言的合法標(biāo)識符,則輸出yes,否則輸出no。
樣例
樣例輸入
RKPEGX9R;TWyYcp
樣例輸出
no
======
代碼如下:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 21;
char S[N];
int main()
{
gets(S); //小心字符串中包含空格,回車:ASCII碼13,換行:ASCII碼10,空格:ASCII碼32
int n = strlen(S);
bool flag = 1;
if (!(S[0]=='_' || isalpha(S[0])))
{
flag = 0;
}
else
{
for (int i=1; i<n; i++)
{
if (!(S[i]=='_' || isalnum(S[i])))
{
flag = 0;
break;
}
}
}
if (flag)
cout << "yes" << endl;
else
cout << "no" << endl;
return 0;
}
======
include <iostream>
#include <string>
#include <cassert>
using namespace std;
bool checkValidIdentifierOfC(string s)
{
char c = s[0]; // first char
if (c>='0' && c<='9')
{
return false;
}
for(int i=0; i<s.size(); i++)
{
c = s[i];
if ((c>='0' && c<='9') || (c>='a' && c<='z') ||
(c>='A' && c<='Z') || (c == '_'))
{
continue;
}
else
{
return false;
}
}
return true;
}
int main()
{
string strText;
cin >> strText;
assert(strText.size() <= 20);
if (true == checkValidIdentifierOfC(strText))
{
cout << "yes" << endl;
}
else
{
cout << "no" << endl;
}
return 0;
}
========
關(guān)鍵詞:
作者:惠民大叔(非官方微信免費提供積分入學(xué)問題咨詢。)
惠民大叔家長社群開放報名:
1、一整年的升學(xué)政策同步更新,
2、一整年的插班生信息更新,
3、一整年升學(xué)政策的獨家解讀,
4、一整年幾千條的家長咨詢回復(fù),
5、一整年無限次的升學(xué)咨詢,
6、以及不公開的信息分享等等。
繼續(xù)指導(dǎo)大家的做好升學(xué)規(guī)劃,帶領(lǐng)大家探索孩子上學(xué)的更多可能性,我們相信,這將是你最值得加入的一個社群!
了解更多關(guān)于上學(xué)報名的事,掃一掃二維碼:

- ·上一篇資訊:私立幼兒園是得自行聯(lián)系嗎?是否要提前預(yù)約之類的呢
- ·下一篇資訊:今年二年級轉(zhuǎn)學(xué)到廈門讀書