单纯判断字母还是数字,C语言有内部函数可以直接用,比如头文件ctype.h下的函数。
但你既然是基础问题,就自己写函数实现判断,对应字符ascii码判断。
#include
int main()
{
int regcmp(char *str);
char str[100];
while(1)
{
scanf("%s",str);
regcmp(str);
}
return 0;
}
int regcmp(char *str)//满足只有字母数字下划线且首字符为字母,满足返回1,不满足返回0
{
int isNumber(char c);
int isLetter(char c);
char *p=str;
if(!isLetter(*p) && printf("首字母不是字母!不符合输入要求!\n"))
return 0;
while(*++p!=0)
if(!isLetter(*p) && !isNumber(*p) && *p!='_' && printf("包含字母数字及下划线以外字符!不符合输入要求!\n"))
return 0;
printf("输入合法!\n");
return 1;
}
int isNumber(char c)//判断是否是数字,是返回1,不是返回0
{
if(c>='0' && c<='9')
return 1;
else
return 0;
}
int isLetter(char c)//判断是否是字母,是返回1,不是返回0
{
if((c>='a' && c<='z') || (c>='A' && c<='Z'))
return 1;
else
return 0;
}