06:正当なC識別子

997 ワード

説明
空白文字を含まない文字列を指定して、C言語の合法的な識別記号かどうかを判断してください(注:テーマはこれらの文字列が必ずC言語の保留字ではないことを保証します).
合計時間制限:
1000ms
メモリの制限:
65536kB
説明
空白文字を含まない文字列を指定して、C言語の合法的な識別記号かどうかを判断してください(注:テーマはこれらの文字列が必ずC言語の保留字ではないことを保証します).
C言語識別子要求:
1.非予約語
2.アルファベット、数値およびアンダースコアのみを含む("").
3.数字で始まることはありません.
入力
空白の文字が含まれず、20未満の長さの文字列を含む行.
しゅつりょく
C言語の正当な識別子である場合はyesを出力し、そうでない場合はnoを出力します.
サンプル入力
RKPEGX9R;TWyYcp

サンプル出力
no
#include 
#include  
using namespace std;

int main(int argc, char* argv[]) {
	string s;
	
	getline(cin, s);
	int flag = 0;
	
	for (int i = 0; i < s.length(); i++) {	
		if (s[i] != '_' && !isalpha(s[i]) && !isdigit(s[i])){
			flag = 1;
			break;
		}
	}
	
	if (!flag && !isdigit(s[0])) cout << "yes" << endl;
	else cout << "no" << endl; 

	return 0;
}