HDOJ 2024 C言語正当識別子
6075 ワード
C言語正当識別子
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33416 Accepted Submission(s): 13468
Problem Description
Cの正当な識別子かどうかを判断する文字列を入力します.
Input
入力データには複数のテストインスタンスが含まれ、データの最初の行は整数nであり、テストインスタンスの数を表し、次いでn行入力データであり、各行は50を超えない文字列である.
Output
入力データのセットごとに1行出力します.入力データがCの正当な識別子である場合、「yes」が出力され、そうでない場合、「no」が出力される.
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
問題解決レポート:
Cの合法的な識別子に合致する要求は、頭文字が下線であることである.あるいはアルファベットで、数字にはできません.次の入力は、キーボードに合法的な入力、例えば数字、アルファベット、下線です.これにより、Cの正当な識別子の要求が満たされる.
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33416 Accepted Submission(s): 13468
Problem Description
Cの正当な識別子かどうかを判断する文字列を入力します.
Input
入力データには複数のテストインスタンスが含まれ、データの最初の行は整数nであり、テストインスタンスの数を表し、次いでn行入力データであり、各行は50を超えない文字列である.
Output
入力データのセットごとに1行出力します.入力データがCの正当な識別子である場合、「yes」が出力され、そうでない場合、「no」が出力される.
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
問題解決レポート:
Cの合法的な識別子に合致する要求は、頭文字が下線であることである.あるいはアルファベットで、数字にはできません.次の入力は、キーボードに合法的な入力、例えば数字、アルファベット、下線です.これにより、Cの正当な識別子の要求が満たされる.
1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 int n,i,k,l;
6 char a[50];
7 scanf("%d",&n);
8 getchar();
9
10 while(n--)
11 {
12 gets(a);
13 l=strlen(a);
14 k=0;
15 if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||a[0]=='_')
16 k++;
17 for(i=1;i<l;i++)
18 {
19
20 if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||a[i]=='_'||(a[i]>='0'&&a[i]<='9'))
21 k++;
22 }
23 if(k==l)
24 printf("yes
");
25 else
26 printf("no
");
27 }
28 }