C语言:合法的C标识符

来源:百度知道 编辑:UC知道 时间:2024/06/19 09:32:31
Description

给出一个标识符,请你判断它是否是C语言合法的标识符。
Input
输入一个标识符。
Output
判断是否合法,如果是输出YES,否则输出NO。
Sample Input
123You
Sample Output
NO
Hint
C语言规定:标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
下面是我做的,在acm上提交提示答案错误,哪位大哥帮忙看看是哪错的....
#include<stdio.h>
#include<string.h>
int main()
{
int i,f,n,b;
char a[81];
gets(a);
n=strlen(a);
if((a[0]=='_')||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z'))
b=1;
for(i=1;i<n;i++)
{
if((a[i]=='_')||(a[i]==' ')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[0]<='Z')||(a[i]>='0'&&a[i]<='9'))
f=1;
else
f=0;
break;
}
if(f==1&&b==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}
一楼的那个

在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。

  在使用标识符时还必须注意以下几点:

  (1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。

  (2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。

  (3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。

#include<stdio.h>
#include<string.h>
int main()
{
int i,f,n,b=0; b没有赋初值
char a[81];
gets(a);
n=strlen(a);
if((a[0]=='_')||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z'))
b=1;
for(i=1;i<n;i++)
{
if((a[i]=='_')||(a[i]==' ')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[0]<='Z')||(a[i]>='0'&&a[i]<='9'))
f=1;
else
f=0;
break;
}
if(f==1&