社区
新手乐园
帖子详情
虽然可以隐藏输入的字符串了
winhkey
2005-10-23 05:38:38
char a,password[10];
while((a=getch())!=0x0d)
{
printf("*");
password1[i++]=a;
}
password1[i]='\0';
却无法删除前面输过的字符
...全文
140
14
打赏
收藏
虽然可以隐藏输入的字符串了
char a,password[10]; while((a=getch())!=0x0d) { printf("*"); password1[i++]=a; } password1[i]='\0'; 却无法删除前面输过的字符
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
winhkey
2005-10-23
打赏
举报
回复
呵呵,别急,接分吧
winhkey
2005-10-23
打赏
举报
回复
to wanguodu(足文字D) :
多谢,我原来的程序是password[17],控制在6-16个字符以内,提这个问题时我随便写的
csucdl
2005-10-23
打赏
举报
回复
呜呜,我要接分
csucdl
2005-10-23
打赏
举报
回复
给分!!!!!
winhkey
2005-10-23
打赏
举报
回复
to :csucdl(csucdl)
多谢,我原来的程序中i是全局变量,刚才测试时忘了,sorry~~~
wanguodu
2005-10-23
打赏
举报
回复
你的代码中隐含了数组越界问题,下面是比较完善的代码:
char a, password[10]; /* 密码长度最大为9,超过取前9个!*/
int i = 0;
memset(password, 0, sizeof(password));
while((a=getch())!=0x0d)
{
if (a == BACKSPACE_CHAR)
{
if(i > 0)
{
i--;
putch(BACKSPACE_CHAR);
putch(BLANK_CHAR);
putch(BACKSPACE_CHAR);
}
}
else
{
printf("*");
password[i]=a;
if(++i >= 9)
{
break;
}
}
}
csucdl
2005-10-23
打赏
举报
回复
???
我的能通过,而且很正常的
初始化 i = 0
winhkey
2005-10-23
打赏
举报
回复
麻烦楼上的2位再看看,代码编译后运行时刚输入1个字符立刻出错退出了
csucdl
2005-10-23
打赏
举报
回复
while((a = getch()) != 0x0d)
{
if (a == 0x08)//XX为退格键代码
{
if(i > 0)
{
i--;
printf("\b%c\b", ' ');
}
continue;
}
printf("*");
passward1[i++]=a;
}
wanguodu
2005-10-23
打赏
举报
回复
退格字符本身只有“后退一格”的功能,没有擦除功能。为此,在收到退格字符后,可以连续输出以下三个字符:一个退格字符,一个空白字符和又一个退格字符。当然,你的password1数组中需要相应地抹去最后一个字符。
const char NEWLINE_CHAR = '\n';
const char BACKSPACE_CHAR = 8;
const char BLANK_CHAR = ' ';
const char RETURN_CHAR = 13;
while((a=getch())!=RETURN_CHAR)
{
if (a == BACKSPACE_CHAR)
{
i--;
putchar(BACKSPACE_CH);
putchar(BLANK_CHAR);
putchar(BACKSPACE_CH);
continue;
}
password1[i++]=a;
}
winhkey
2005-10-23
打赏
举报
回复
退格键代码0x08,但还是不行,比如我要输入123456,结果误输入12245,此时发现错了想退格重输就不行了。
i_noname
2005-10-23
打赏
举报
回复
while((a=getch())!=0x0d)
{
if (a == XX)//XX为退格键代码
{
i--;
continue;
}
printf("*");
password1[i++]=a;
}
binbin
2005-10-23
打赏
举报
回复
因为你根据没有处理退格键
fujingn188
2005-10-23
打赏
举报
回复
while(i>=0)
password[i--]='\0';
隐藏
字符串
给定一个由小写字母构成的
字符串
s。...
字符串
t 可能
隐藏
于
字符串
s 中多次,这取决于共有多少个 s 的不同子序列满足与
字符串
t 一一对应,且各个元素下标可以构成一个等差数列。 例如,在
字符串
aa
字符串
筛选:编写函数fun,其功能是将
字符串
s下标为奇数的字符删除,
字符串
中剩余字符形成的新
字符串
放在数组t中。
主函数中
输入
字符串
s,调用函数,输出字符数组t。
输入
说明:共一行,
输入
字符串
s 输出说明:共一行,输出
字符串
t
输入
示例:abcd1234 输出示例:ac13 #include <stdio.h> #include <string.h> ...
字符、
字符串
:定义、
输入
输出方法
字符串
的
输入
字符串
的输出
字符串
的存在形式 字符数组
字符串
字面值 常用方式 字符 在计算机中是以整型形式存储的,当需要显示时会根据ASCII表中的对应关系显示出相应的符号或图案 字符的
输入
scanf("%c",...
C/C++
字符串
输入
输出和
字符串
函数基础学习
字符串
常量(
字符串
字面量) 用双括号括起来的内容称为
字符串
字面量,也叫做
字符串
常量。属于静态存储类别,如果在函数中使用
字符串
常量,该
字符串
只会被储存一次,在整个程序的生命周期内存在,计时函数被调用多次...
提取
字符串
中的数字C/C++(指针)
本关任务:在一串
隐藏
着一个或多个数值的字符中,选出
字符串
中的所有数字字符,并将选出的数字字符重新组成新
字符串
。如果在第一个数字字符之前有负号,则保留该负号,有多个负号时只保留一个。 例如:
输入
的
字符串
...
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章