C語言合法標識符
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 37056 Accepted Submission(s): 14897
Problem Description
輸入一個字符串,判斷其是否是C的合法標識符。
Input
輸入數據包含多個測試實例,數據的第一行是一個整數n,表示測試實例的個數,然後是n行輸入數據,每行是一個長度不超過50的字符串。
Output
對於每組輸入數據,輸出一行。如果輸入數據是C的合法標識符,則輸出"yes",否則,輸出“no”。
Sample Input
3
12ajf
fi8x_a
ff ai_2
Sample Output
no
yes
no
Author
lcy
Source
C語言程序設計練習(四)
Recommend
lcy | We have carefully selected several similar problems for you: 2025 2026 2021 2027 2030
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
這道題目首先得知道什麼是C語言合法標識符:
(1)、首元素只能是下劃線或是字母,
(2)、除首元素外的元素只能是數字、下劃線和字母)
先判斷第一個字符是否符合開頭規則,然後再逐一判斷每個字符。
AC代碼:
#include
#include
using namespace std;
int main()
{
string a;
int n;
cin >> n;
getchar();
while (n--){
getline(cin, a);
bool flag = true;
if (!(a[0] == '_' || ('A' <= a[0] && a[0] <= 'z'))){
flag = false;
cout << "no" << endl;
continue;
}
for (int i = 0; i < a.size(); i++){
if (!(a[i] == '_' || (a[i] >= '0'&&a[i] <= '9') || ('A' <= a[i] && a[i] <= 'Z') || ('a' <= a[i] && a[i] <= 'z')))
{
flag = false;
cout << "no" << endl;
break;
}
}
if (flag)
cout << "yes" << endl;
}
return 0;
}