首先是getch的妙用:
#include "JUDGE.h"
int Judge(char ch)
{
if( (ch>='0'&&ch<='9')|| (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )
return 1;
else
return 0;
}
/*********************************************
函数名称:void Input(char *c,int size,int flag)
功能描述:
登录对数据进行验证
参数说明:
char *c表示传入的数组,size表示最大的长度 ,当flag为1检验用户名 为0检验密码
返回值:
**********************************************/
void Input(char *c,int size,int flag)
{
int i=0;
char ch;
while(1)
{
ch=getch();
if( Judge(ch) && i<size)
{
if(flag==1)
{
putchar(ch);
}
else
{
putchar('*');
}
c[i]=ch;
i++;
}
else if( ch=='\b')
{
if(i>0)
{
printf("\b \b");
i--;
c[i]='\0';
}
}
else if(ch=='\r')
{
c[i]='\0';
break;
}
else
{
putchar(7);
}
}
}
char a = '\0' 与char b = '0'是完全不一样的 因为因为\0是ASCII码的第0个字符 而0是ASCII的第48个字符 所以二者是不相等的
串的简单匹配
#include <stdio.h>
#define N 10000
int main()
{
int i;
int j;
int t;
char a[N];
char p[] = "hello";
for(i = 0;i < N-1;i++)
{
if((t = getchar()) == '\n')
break;
a[i] = t;
}
a[i] = '\0';
for(i = 0;a[i] != '\0';i++)
{
for(j = 0;p[j] != '\0';j++)
{
if( a[i+j] != p[j] )
break;
}
if(p[j] == 0)
printf("%d ",i);
}
printf("\n");
}