HDOJ 2024
来源:互联网 发布:java 开发环境 编辑:程序博客网 时间:2024/05/22 14:13
题目:
C语言合法标识符
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35055 Accepted Submission(s): 14112
Problem Description
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
312ajffi8x_aff ai_2
Sample Output
noyesno
在线测试地址:
http://acm.hdu.edu.cn/showproblem.php?pid=2024
算法:(PS: 该算法的主体思路借鉴了http://blog.sina.com.cn/s/blog_8ebb07c70100v095.html,在此表示感谢。)
读入n
n自减大于0时读入字符串
统计读到的字符串,符合条件的输出相应的结果
代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 100int main(){ int i, j, n, mark; char c, ch[MAX]; //不初始化会导致程序错误。 while(scanf("%d", &n)!=EOF) { getchar(); //把输入n时伴随的回车符读掉,否则影响下面的判断 for(i=0;i<n;i++) { char ch[MAX]={0}; //每次读取完了都要初始化字符串数组,否则会叠加上次的输入。但为什么一定要加char才编译无误? for(j=0;(c=getchar())!='\n';j++) //当输入为ctrl_z的时候要连续enter才出现no的信息,错误(?) ch[j]=c; //gets(ch); //gets()并不把换行符读入缓冲区 /* for(j=0;ch[j]!='\0';j++) printf("%c", ch[j]); printf("\n"); */ // puts(ch); //用来测试gets()方法得到的字符串和getchar()方式得到的字符串的差别 if(ch[0]>='0'&&ch[0]<='9') { printf("no\n"); continue; } mark=0; for(j=0;j<strlen(ch);j++) { if(ch[j]>='0'&&ch[j]<='9' || ch[j]>='a'&&ch[j]<='z' || ch[j]>='A'&&ch[j]<='Z' || ch[j]=='_') ++mark; } if(mark==strlen(ch)) printf("yes\n"); else printf("no\n"); } }}
总结:
要用到最底层的IO功能,就一定要有自行管理存储的意识。要用一个个字符读入的方式,就要注意清除历史残留。gets()函数早就封装好这个层面的信息了,只是用的时候不曾意识到。
0 0
- HDOJ 2024
- HDOJ 2024
- HDOJ--2024
- hdoj 2024
- HDOJ
- hdoj
- hdoj
- HDOJ
- hdoj 2024 C语言合法标识符
- C语言合法标识符 hdoj 2024
- hdoj.2024 C语言合法标识符 20140726
- HDOJ C语言合法标识符 2024
- HDOJ 2024 C语言合法标识符
- HDOJ 2024 C语言合法标识符
- hdoj 2024 C语言合法标识符
- hdoj 2024 C语言合法标识符
- HDOJ 2024 C语言合法标识符
- HDOJ--2024 C语言合法标识符
- Data input format and Data output format
- Android 多选列表
- 关于AChartengine点上显示数据的问题
- dede实现列表页隔行换色
- 黑马程序员—静态导入与编译器语法设置
- HDOJ 2024
- Junit写测试自动rollback的问题
- HRESULT中S_OK,S_FALSE和 E_FAIL(转载)
- dm8168内存映射
- 建立LinqtoSql类
- 什么是c++中的plmpl模
- ArcGis地统计插值方法
- Swift编程语言 FAQ
- MongoDB工作笔记