我用函数写了一段代码,用以判断用户的姓名是否合法,然后返回进行下一步,但是,出现了无法正确返回的情况。
不知道该如何进行。希望大家再帮我看看。改怎么改呢?
当姓名为正确时(不包括数字,特殊字符)进行性别的处理。但当姓名输入不正确的时候,返回重新输入。但我这么写,总是返回重新输入。什么原因呢。另外。如何判断字符为中文呢。因为姓名为中文是合法的。
局部代码如下:
#include<stdio.h>
#include<string.h>
char user_name(char);
//********信息结构体**********//
struct chanteur
{
int id; //序号
char name[10]; //姓名
char sex; //性别
int age; //年龄
float score[N]; //分数
};
void main()
{
。。。。
do
printf("\n请输入歌手的姓名:");
while(user_name(name)==0); /*姓名*/
fflush(stdin);
printf("\n请输入歌手的性别:"); /*性别*/
。。。。。
}
/*************姓名判断函数****************/
char user_name(char name[10]) {
struct chanteur info;
char i,*p;
fflush(stdin);
gets(info.name);
p=name;
for(i=0;i<10;i++)
{
if(*(p+i)>='a'&&*(p+i)<='z'||*(p+i)>='A'&&*(p+i)>='Z'||*(p+i)>='\0')
{
if(*(p+i)=='\0')
return 1;
else ;
}
else
{
printf("输入错误,请返回重新输入!!");
return 0;
}
}