C语言合法标识符(2024),这道题用到了比较多的字符串方面的知识,所以记录一下。
虽然这道题不用特殊的方法,但是写的时候还是要思路清晰才行,对锻炼思维有帮助。
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
代码:
#include <stdio.h>
void main()
{ char a[55];
int n,i,sum=0;
while(scanf("%d",&n)!=EOF)//输入要验证的n个字符串数
{ getchar();
while(n--)
{ gets(a);
if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||a[0]=='_')//判断首字母是否合法
{ for(i=1;a[i]!='\0';i++)
{ if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||a[i]=='_') //判断字符串里的字符是否合法
sum=1;
else {sum=2;
break;}
}
} else sum=2;
if(sum==1)
printf("yes\n");
else printf("no\n");
sum=0;
}
}
}