hdu 2024 c语言合法标识符 结题报告
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2024
这一次让我充分体会到了基础知识的重要性 c语言的合法标识符是有数字字母和下划线组成的 并以字母和下划线开头的
我居然以为下划线不能作为标识符的开头,并且把字符型的数据直接赋值为1(没加引号 表示ASCII 的 1 与 '1' 不相同)
还有 数字的范围居然写成了1到9 错误太低级了(数字的范围是0到9) 水啊水啊水
ps:有些解题报告说这道题是个麻烦的题 需要判断是不是关键字 看来测试数据额有点水 虽然AC了 不过做的时候没想到 毕竟过了 犯点懒 不改了
1 #include<iostream>
2 #include<string>
3 #include<cstdio>
4 using namespace std;
5 bool is_string(string a)
6 {
7 int i,j,k;
8 {
9 if(a.length()<1)
10 return 0;
11 }
12 if( (a[0]>='A' && a[0]<='Z') || (a[0]>='a' && a[0]<='z') || a[0]=='_')
13 {
14 for(i=1;i<a.length();i++)
15 {
16 if( (a[i]>='0' && a[i]<='9') || (a[i]>='A' && a[i]<='Z' ) || (a[i]>='a' && a[i]<='z') || a[i]=='_' )
17 {
18 }
19 else
20 {
21 return 0;;
22 }
23 }
24 return 1;
25 }
26 else
27 {return 0;}
28 }
29 int main()
30 {
31 string a;
32 int num,ncase,i;
33 num=0;
34 while(cin>>ncase)
35 {
36 getchar();
37 if(num!=0)
38 {cout<<endl;}
39 for(i=0;i<ncase;i++)
40 {
41 getline(cin,a);
42
43 if(is_string(a))
44 cout<<"yes"<<endl;
45 else
46 cout<<"no"<<endl;
47 }
48 num++;
49 }
50 //system("pause");
51 return 0;
52 }