忽然发现有一道之前写的差不多但没有通过的题,于是拉出来改一下
题目
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
AC的代码
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(void)
{
int n;
char iden[55];
scanf("%d",&n);
getchar();
while(n-->0){
int j=0;
gets(iden);
if(iden[0]!='_'&&isalpha(iden[0])==0){
printf("no\n");
continue;
}
for(j=0;j<strlen(iden);j++){
if(isalnum(iden[j])==0&&iden[j]!='_'){
printf("no\n");
break;
}
}
if(j==strlen(iden))
printf("yes\n");
}
return 0;
}
一顿好改……
不用fgets是因为懒的处理换行符……
Run ID | Submit Time | Judge Status | Pro.ID | Exe.Time | Exe.Memory | Code Len. | Language | Author |
---|---|---|---|---|---|---|---|---|
28820115 | 2019-04-05 17:49:09 | Accepted | 2024 | 31MS | 1688K | 443 B | C | Overstars |
28820085 | 2019-04-05 17:47:09 | Wrong Answer | 2024 | 31MS | 1704K | 487 B | C | Overstars |
28820067 | 2019-04-05 17:45:04 | Wrong Answer | 2024 | 15MS | 1696K | 470 B | C | Overstars |
28820044 | 2019-04-05 17:41:26 | Wrong Answer | 2024 | 15MS | 1688K | 450 B | C | Overstars |
28820021 | 2019-04-05 17:38:36 | Wrong Answer | 2024 | 15MS | 1692K | 450 B | C | Overstars |
28819950 | 2019-04-05 17:31:19 | Wrong Answer | 2024 | 15MS | 1696K | 494 B | C | Overstars |
2019年4月5日17点56分