C语言判断输入新命名的变量名是否正确
发布网友
发布时间:2023-05-24 06:31
我来回答
共1个回答
热心网友
时间:2023-05-27 23:04
看你的代码太复杂了,我直接帮你写了一个,你对比一下:
#include <stdio.h>
int is_char(char c)
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
return 1;
}
return 0;
}
int is_number(char c)
{
return (c >= '0' && c <= '9');
}
int is_valid(const char *var)
{
// 变量名必须以字母或下划线开头
if (!is_char(*var) && *var != '_')
{
return 0;
}
// 后续的字符必须是数字或字母或下划线
while (1)
{
++var;
if (*var == '\0')
{
break;
}
if (!is_char(*var) && !is_number(*var) && *var != '_')
{
return 0;
}
}
return 1;
}
int main()
{
char szVar[100];
printf("Please input a variable: ");
scanf("%s", szVar);
printf("The variable is %s\n", is_valid(szVar) ? "valid" : "invalid");
return 0;
}
Linux 下编译及测试结果如下:
[root@iZ25a38chb4Z lory]# g++ teset.cpp -o test -g3 -Wall
[root@iZ25a38chb4Z lory]# ./test
Please input a variable: _Hello2
The variable is valid
[root@iZ25a38chb4Z lory]# ./test
Please input a variable: 2#a
The variable is invalid
[root@iZ25a38chb4Z lory]# ./test
Please input a variable: _s$s
The variable is invalid
[root@iZ25a38chb4Z lory]# ./test
Please input a variable: a_2
The variable is valid