C语言合法标识符
2015-10-07 22:05
567 查看
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
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3
12ajf
fi8x_a
ff ai_2
Sample Output
no
yes
no
#include<stdio.h> #include<string.h> int main() { char a[1000]; int T; scanf("%d",&T); getchar();//起初没写这句话,一输入3就输出no,原来是因为在输出3之后 ,程序把回车当成了一个字符串,并输出了结果。 注意,scanf不吸收回车,gets会吸收回车! while(T--) { memset(a,'\0',sizeof(a)); int flag=1; //scanf("%s",a);用scanf输入字符串时,遇到空格就结束,后面的字符不算,所以这种情况下,第三个样例总是yes gets(a); int len; len=strlen(a); int i; if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||a[0]=='_') { for(i=0;i<len;i++) { if(a[i]==' '&&a[i+1]!=' ') { flag=0; break; } else { if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||a[i]=='_'||(a[i]>='0'&&a[i]<='9')) continue; else flag=0; } } if(flag) printf("yes\n"); else printf("no\n"); } else printf("no\n"); } return 0; }
相关文章推荐
- C/C++中字符的基本操作
- 【C语言】输出菱形星号图案
- vector data() [c++11]
- C++中的const关键字详解
- 数组中的逆序对数(C++版)
- C语言字符串那些事
- C语言字符串那些事
- c++中加载文件的路径,“\\”和“/”
- C++学习笔记之指针
- C++ 设计模式学习-网站
- C++输入输出
- c语言里‘...’意思是一个参数或者多个参数的意思
- C/C++ INI文件操作
- C/C++中的extern关键字详解
- C++头文件
- strftime()函数,C语言时间格式化
- c语言中地址加法与减法
- C语言的存储类型的个人理解
- c++中xx.h和xx.cpp之间的联系
- 项目34.2-1麻烦的累加涨功夫