输入为test时,答案应该是no,但是结果实际上的输出是yes,if那里要怎么改才能使全为字母和数字时也是no?
问题描述
输入一个字符串,判断其是否是C的合法标识符。合法字符定义如下:
1)字母、数字组成的序列,但其第一个字符必须为字母。
2)下划线“_”被看做字母。
#include<stdio.h>
int main(){
int n,i;
char a[100];
while(scanf("%d",&n)!=EOF){
while(n--){
getchar();
gets(a);
if(a[0]=='_'||(a[0]>='a'&&a[0]<='z')){
for(i=1;a[i]!='\0';i++){
if(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9'))
continue;
else{
printf("no\n");
break;
}
}
if(a[i]=='\0')
printf("yes\n");
}
else
printf("no\n");
}
return 0;
}
}