标签:
判断c语言的字符串是否是合法的变量名
令人遗憾的是 我的for循环竟然多打了一个分号
调试好久才发现
我竟然瞎想是不是gets函数是不是有什么特殊属性 唉 天真
#include <stdio.h> int main() { int n,i,j; char a[51]; while (scanf("%d%*c",&n)) { for (i = 0;i < n;i++) { gets(a); if ((a[0] >= ‘a‘ && a[0] <= ‘z‘) || (a[0] >= ‘A‘ && a[0] <= ‘Z‘) || (a[0] == ‘_‘)) { for (j = 1; a[j] != ‘\0‘; j++) { if ((a[j] >= ‘a‘ && a[j] <= ‘z‘) || (a[j] >= ‘A‘ && a[j] <= ‘Z‘) || (a[j] == ‘_‘) || (a[j] >= ‘0‘ && a[j] <= ‘9‘)) { printf("yes\n"); break; } else { printf("no\n"); break; } } } else { printf("no\n"); } } } return 0; }
参考答案
#include <ctype.h> #include <stdio.h> int main(void) { int n, d, i; char sym[64]; scanf("%d%*c", &n); while (n--) { gets(sym); if (sym[0] != ‘_‘ && !isalpha(sym[0])) { puts("no"); continue; } for (d = i = 1 ; sym[i] ; i++) { if (!isalnum(sym[i]) && sym[i] != ‘_‘) { d = 0; break; } } puts(d ? "yes" : "no"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/ailx10/p/5343081.html