[2011山东ACM省赛] Identifiers(模拟)
Identifiers
Time Limit: 1000ms?? Memory limit: 65536K??有疑問?點這里^_^
題目描寫敘述
Identifier is an important concept in the C programming language. Identifiers provide names for several language elements, such as functions, variables, labels, etc.An identifier is a sequence of characters. A valid identifier can contain?only upper and lower case alphabetic characters, underscore and digits, and?must begin with an alphabetic character or an underscore. Given a list of?chararcter sequences, write a program to check if they are valid identifiers.
輸入
The first line of the input contains one integer, N, indicating the number of strings in the input. N lines follow, each of which contains at least one and no?more than 100 characters. (only upper and lower case alphabetic characters, digits, underscore (" "), hyphen ("-"), period ("."), comma (","), colon (":"), semicolon (";"), exclamation mark ("!"), question mark ("?"), single and double quotation marks, parentheses, white space and square brackets may appear in the character sequences.)輸出
For each of the N lines, output "Yes" (without quote marks) if the character?sequence contained in that line make a valid identifier; output "No" (without?quote marks) otherwise.
演示樣例輸入
7 ValidIdentifier valid_identifier valid_identifier 0 invalid identifier 1234567 invalid identifier adefhklmruvwxyz12356790 -.,:;!?'"()[]ABCDGIJLMQRSTVWXYZ演示樣例輸出
Yes Yes Yes No No No No提示
來源
山東省第二屆ACM大學(xué)生程序設(shè)計競賽?
解題思路:
推斷是否輸入的字符串為合法標識符。
代碼:
#include <iostream> #include <stdio.h> #include <string.h> #include <ctype.h> using namespace std; string str[1000]; int main() {int n;cin>>n;getchar();//必須得加這個,吸收空格,否則后面用getline會出錯for(int i=1;i<=n;i++){getline(cin,str[i]);bool ok=1;int len=str[i].length();if(!isalpha(str[i][0])&&str[i][0]!='_')//首字母不是字母也不是下劃線{cout<<"No"<<endl;continue;}for(int j=0;j<len;j++){if(!isdigit(str[i][j])&&!isalpha(str[i][j])&&str[i][j]!='_')//不符合要求{ok=0;break;}}if(ok)cout<<"Yes"<<endl;elsecout<<"No"<<endl;}return 0; }
?
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
本文轉(zhuǎn)自mfrbuaa博客園博客,原文鏈接:http://www.cnblogs.com/mfrbuaa/p/4686198.html,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的[2011山东ACM省赛] Identifiers(模拟)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七种设计原则(二)单一职责原则
- 下一篇: [转]vc中socket编程步骤