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
#include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { int n; char a[50]; cin>>n; getchar();//getchar,C语言中的函数,从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。 int flag; while(n--) { gets(a);//gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串 flag=0; int m=1; if((a[0]>='a'&&a[0]<='z') || (a[0]>='A'&&a[0]<='Z') || (a[0]=='_')) { for(int i=1;a[i]!='\0';i++) { if((a[i]>='a'&&a[i]<='z') || (a[i]>='A'&&a[i]<='Z') || (a[i]=='_') || (a[i]>='0'&&a[i]<='9')) { flag=1; } else { flag=2; break; } } if(flag==1) { cout<<"yes"<<endl; } else cout<<"no"<<endl; } else { cout<<"no"<<endl; } } return 0; }