杭電acm 2024 c言語合法識別子
3283 ワード
識別子とは、あなたがつけた名前です.c/c++では、変数名、シンボル定数名、関数名、配列名、ファイル名、クラス名、オブジェクト名などを識別します.(あなたの両親があなたに後でつけた名前を持っているようです)~~c/c++有効識別子の構成規則は以下の通りです(1)最初の文字はアルファベット(大文字と小文字を区別しない)または下線();(2)かかと文字(大文字と小文字を区別せず)、下線()または数字の構成;(3)識別子の大文字と小文字に違いがある.(4)cコンパイルシステムが予め定義した、特殊な用途を有する保持識別子(すなわちキーワード)と同名にすることはできない.例えば、識別子をfloat,auto,break,case,this,try,for,while,int,char,short,unsignedと命名することはできないなど、簡単でしょう.合法的な識別子は何でも忘れてしまいました...
cin入力が終了すると、入力ストリームにもう1つの改行符があり、このときgetsやgetlineを使えば、入力しなくてもすぐに改行符がもらえます...だからgetchar()などの影響を除去します
#include
#include
using namespace std;
int main()
{
int n,sum;
int flag;
cin>>n;
getchar(); //
cin.getline
while(n--)
{
char ch[51];
cin.getline(ch,51);
flag=0;
sum=0;
int len=strlen(ch);
if(!(ch[0]=='_'||(ch[0]>='a'&&ch[0]<='z')||(ch[0]>='A'&&ch[0]<='Z')))
{
cout<<"no"<continue;
}
for(int i=0;iif(ch[i]=='_'||(ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')||(ch[i]<='9'&&ch[i]>='0'))
{
sum++;
}
}
if(sum==len)
{
cout<<"yes"<else
{
cout<<"no"<return 0;
}
cin入力が終了すると、入力ストリームにもう1つの改行符があり、このときgetsやgetlineを使えば、入力しなくてもすぐに改行符がもらえます...だからgetchar()などの影響を除去します