C语言:合法的C标识符
Description给出一个标识符,请你判断它是否是C语言合法的标识符。Input输入一个标识符。Output判断是否合法,如果是输出YES,否则输出NO。Sample...
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;
}
一楼的那个答案还是错的啊,对b负值以后还是不对啊 展开
给出一个标识符,请你判断它是否是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;
}
一楼的那个答案还是错的啊,对b负值以后还是不对啊 展开
3个回答
展开全部
在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。
在使用标识符时还必须注意以下几点:
(1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。
(2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。
(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。
在使用标识符时还必须注意以下几点:
(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&&b==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}
#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&&b==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |