这道题是帮大家回忆合法标识符的限制条件吧。。。
读入字符串两个地方需要注意,第一个是输入完数量之后需要一个getchar来读取回车符
第二个是读入一整行字符需要用gets
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
int n;
scanf("%d",&n);
char str[55];
int len;
getchar();//读取回车
while(n--)
{
int i;
gets(str);
len = strlen(str);
if( !(str[0] >='a'&&str[0]<='z') && !(str[0]>='A' && str[0]<='Z') && !(str[0] == '_') )
{
printf("no\n");
continue;
}
for ( i=1;i<len;i++)
{
if( !(str[i] >='a'&&str[i]<='z') && !(str[i]>='A' && str[i]<='Z') && !(str[i] == '_')
&& !(str[i] >='0'&&str[i]<='9'))
{
printf("no\n");
break;
}
}
if( i == len)
printf("yes\n");
}
}