c语言 高手帮个忙 看下问题出在哪?

来源:百度知道 编辑:UC知道 时间:2024/05/12 04:12:03
还没写完就出问题,在输入用户名进行验证时总是为错,要求重新输入。验证规则为 (数字和字母 否着验证无法通过。)

#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<ctype.h>

void string_input();//字符串输入
int String_rule(char R);//字符串验证
int gotoXY(int x,int y);//光标定位

int tag;
void main()//主界面
{
int i;
char b[20],password;
for(i=0;i<7;i++)
printf("\n");
for(i=0;i<20;i++)
printf(" ");
printf("Please input an user's name and password");
printf("\n\n\n\n");
for(i=0;i<20;i++)
printf(" ");
printf("%20s","User's name : \n");
for(i=0;i<20;i++)
printf(" ");
printf("%20s","password : \n");
printf("\n\n\n");
for(i=0;i<20;i++)
printf(" ");
for(i=0;i<40;i++)

问题出在
for(j=0;j<20;j++)
{

scanf("%c",&a[j]);
r=a[j];

if(String_rule(r))
tag=1;
else
{
tag=0;
break;
}
}

这个部分,你要求必须输满20个字符,如果不够20个字符,则认为是输入非正常的字符,导致不能进入下一步。