C语言合法标识符
发布网友
发布时间:2022-04-22 23:47
我来回答
共7个回答
热心网友
时间:2023-01-28 00:19
C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。
标识符长度是由机器上的编译系统决定的,一般的*为8字符(注:8字符长度*是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写
扩展资料
在汇编语言里,标识符由字母、数字、下划线组成。标识符的命名规则是:由字母(大、小写皆可)、数字及下划线组成,且第一个字符必须是字母或者下划线,不能用具有意义的指令符号或者寄存器。在汇编语言中,一般用大写字母。
在python里,标识符有字母、数字、下划线组成。所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入,以双下划线开头的(__foo)代表类的私有成员。
参考资料 标识符_百度百科
热心网友
时间:2023-01-28 01:54
还需要排出关键字,设置一个关键字表,如果在这个表中,也提示为非法标识符
热心网友
时间:2023-01-28 03:45
标识符定义:以字母或下划线开头,由字母、数字和下划线组成的字符串
正确标识符:conn
temp_test
test_1
_studentName
错误标识符:)abc
23bcd
热心网友
时间:2023-01-28 05:53
首先第一个字符必须是字母或者下划线,然后后面的字符要是字母,数字或者下划线,还有合法的标识符不可以是c语言中的关键字,例如int这些是c语言的关键字,所以不能用来当标识符的,如果都符合以上三条规则,就是合法标识符,如果不符合以上任何一条,那么就不是合法标识符。
热心网友
时间:2023-01-28 08:18
想用枚举存放关键字用来判断,失败了。
#include
<stdio.h>
//
enum
keywd{enum,auto,double,int,struct,break,else,long,switch,case,register,typedef,
//
char,extern,return,union,const,float,short,unsigned,continue,
for
,signed
,void
,default,
//
goto,
sizeof
,volatile,
do,
if,
while,
static
};
void
main()
{
char
str[100];
gets(str);
if((str[0]=='_')||(str[0]>='A'&&str[0]<='z'))
printf("yes\n");
else
printf("no\n");
}
热心网友
时间:2023-01-28 10:59
我正好有这个程序。。。
这么*的也让你们做。。
50348 zxl0714 1357 Accepted 40K 15MS G++ 1.28K 2007-04-18 19:24:23
#include <stdio.h>
int identf(char *str);
int isKey(char *str);
int x_strcmp(char *si, char *di);
int main()
{
char buffer[256];
int n,i;
scanf("%d",&n);
gets(buffer);
for (i=0;i<n;i++){
gets(buffer);
if(identf(buffer))
puts("yes");
else
puts("no");
}
return 0;
}
int identf(char *str)
{
int flag=0;
char *p=str;
if((*str>='a' && *str<='z') || (*str>='A' && *str<='Z') || *str=='_')
{
flag=1;
str++;
}
while(*str && flag)
{
if((*str>='a' && *str<='z') || (*str>='A' && *str<='Z') || *str=='_'
|| (*str>='0' && *str<='9'))
{
flag=1;
str++;
}
else
flag=0;
}
if(flag)
flag=isKey(p);
return flag;
}
int isKey(char *str)
{
char *keyword[]={"auto", "break", "case", "char", "const", "continue", "default",
"do", "double", "else", "enum", "extern", "float", "for", "goto",
"if", "int", "long", "register", "return", "short", "signed",
"sizeof", "static", "struct", "switch", "typedef", "union", "unsigned",
"void", "volatile", "while"};
int i, flag=1;
for(i=0; i<32; i++)
{
if(x_strcmp(str, keyword[i])==0)
{
flag=0;
break;
}
}
return flag;
}
int x_strcmp(char *si, char *di)
{
while(*si && *di && *si==*di)
{
si++;
di++;
}
return *si-*di;
}
热心网友
时间:2023-01-28 13:57
int n;
scanf("%d",&n);
char a[100][50];
int i=0;
while(i<n)
{
scanf("%s",a[i]);
i++;
}
i=0;
int j=0;
while(i<n)
{
if(a[i][0]>='0'&&a[i][0]<='9')
{
printf("no\n");
i++;
continue;
}
while(j<strlen(a[i]))
{
if(a[i][j]>='a'||a[i][j]<='z'||a[i][j]>='A'||a[i][j]<='Z'||a[i][j]=='_')
j++;
else
{
printf("no\n");
j=0;
break;
}
}
if(j==strlen(a[i]))
{
printf("yes\n");
j=0;
}
i++;
}
还有关键字也是不合法的,但难以全部列出来,输入时注意就行了!