对于这个程序的几点疑问,望解答?????

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:49:25
#include "conio.h" //用getch()函数时要的文件头
#include "stdio.h"
#include "string.h"
void main()
{
int j=0;
char ch;
char passWord[20];
while((ch=getch())!=13)
{
putchar('*');
passWord[j]=ch;
j++;
}
passWord[j]='\0';
if(strstr("abc",passWord))
printf("您输入的密码是:%s","abc");
}

几乎看不太懂 希望加一下详细的注释 谢谢
首先 一 定义 j是做什么用的啊???

二 while((ch=getch())!=13) 这句看不懂

三 {
putchar('*');
passWord[j]=ch;
j++; } 是什么意思??

四 为什么要加上passWord[j]='\0'; ???

说来话长,慢慢给你说吧。;就是给的分太少了。
1.定义j是做计数用的,因为你是用passWord[20]这个字符数组来存放你输入的字符的,到底输入了多少个,怎么存放,就要用到j这个计数了。
2.while((ch=getch())!=13)这个好懂。geich()函数的功能是从键盘读取一个字符,然后保存到ch这个变量中,一直读取,直到读取到了回车(他的ASCII码就是13为止),结束密码的输入。
3.
putchar('*');
passWord[j]=ch;
j++; }
这个也好理解,既然是密码,就不能让人看见到底输入了什么,所以没输入一个字符,不管输入的是什么,都显示一个星号,然后把输入的那个字符存到字符数组来里面,计数器j自然也要指向下一个保存位置,所以要j++;
4.由于使用的是字符数组,他要和“abc”这个字符串比较,就必须把字符数组变成字符串数组,而两者的区别就在最后一个‘\n’。

#include "stdio.h"
#include "string.h"
void main()
{
int j=0;
char ch;
// 保存密码的数组
char passWord[20];
// while循环用来保存敲回车前的数据,即保存密码
while((ch=getch())!=13)
{
// 每输入一个字符,输出'*',隐藏密码
putchar('*');
// 将获取到的实际字符保存到passWord中
passWord[j]=ch;
j++;
}
passWord[j]='\0';
// 看看passWord被包括在abc字串中...
if(strstr("abc",passWord))
printf("您输入的密码是:%s","abc"); <