2024 C语言合法标识符
2015-07-20 11:41
316 查看
C语言合法标识符Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 46159 Accepted Submission(s): 18595 [align=left]Problem Description[/align] 输入一个字符串,判断其是否是C的合法标识符。 [align=left]Input[/align] 输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。 [align=left]Output[/align] 对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。 [align=left]Sample Input[/align] 3 12ajf fi8x_a ff ai_2 [align=left]Sample Output[/align] no yes no |
合法的标识符,由字母数字下划线组成,第一个字符不能是数字,用字符数组存下来,用一个开关标记是否符合题意,单个判断就可以了,代码比较繁琐,可以用写一个函数,比较直观一些...
#include<stdio.h> #include<string.h> bool hefa(char x) { if(!((x>='a'&&x<='z')||(x>='A' &&x<='Z')||(x>='0'&&x<='9')||(x=='_'))) { return 0; } else { return 1; } } int main() { int i,t,ok;char x[55]; scanf("%d",&t); getchar(); while(t--) { memset(x,0,sizeof(x)); gets(x);ok=1; if(hefa(x[0])==1&&!(x[0]>='0'&&x[0]<='9')) { for(i=1;x[i]!=0;++i) { if(hefa(x[i])==0) { ok=0; break; } } } else { ok=0; } if(ok==1) { printf("yes\n"); } else { printf("no\n"); } } return 0; }
相关文章推荐
- POJ 3186
- 【C++】剑指Offer上的题目1-9
- c++之运行时类型识别
- C++四个新的类型转换操作符
- UVA11729 Commando War
- c++关于文件打开目录的问题
- C语言函数sscanf()的用法
- What's the difference between C++ and Python
- c++ 11新特性
- [C++设计模式] adapter 适配器模式
- POJ3069 Saruman's Army
- C++知识点总结(5)
- C++知识点总结(5)
- 大话设计模式C++实现-文章7章-代理模式
- [C++设计模式] command 命令模式
- c语言求最大公约数和最小公倍数
- 【C++】修改VS2013的默认堆栈大小
- 彻底搞清 C/C++中a++与++a的区别
- 步步为营(三)贪心(2)选择不相交区间
- C++ HOJ 约瑟夫问题 之 神牛代码