怎样验证输入的字符串是否为二进制串??

visly 2010-04-24 09:11:49
void main()
{
char a[20];
printf("请输入信息位:");
scanf("%s",&a);
//后面怎么验证输入的a是二进制的串?
}
...全文
174 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2010-04-24
  • 打赏
  • 举报
回复
scanf("%s",&a);
应该是scanf("%s",a);a是数组就不用加&。 判断是不是二进制串,你说的是01串吧,那就判断每位是不是0或1就行了。
febbird1984 2010-04-24
  • 打赏
  • 举报
回复

char *p=a;
while(*p!='\0')
{
if(*p!='0' && *p!='1')
{
printf("invalid input.\n");
break;
}
else
{
++p;
}
}
jackyjkchen 2010-04-24
  • 打赏
  • 举报
回复
控制台输入要想精确控制难度比较大,别的不说,楼主的这一段代码就是个缓冲区溢出漏洞……

还是考虑用GUI吧
kevinyujm 2010-04-24
  • 打赏
  • 举报
回复
输入字符串中只能有0或1两种字符。
昵称很不好取 2010-04-24
  • 打赏
  • 举报
回复
判断每一位是否是0或者1
你的代码中有个小疏漏,scanf("%s",&a); ,这里&a应该就是a,不要&
Bestrem_9 2010-04-24
  • 打赏
  • 举报
回复
如果是判断01串的话,这个方法是可行的。
[Quote=引用 4 楼 febbird1984 的回复:]
C/C++ code

char *p=a;
while(*p!='\0')
{
if(*p!='0' && *p!='1')
{
printf("invalid input.\n");
break;
}
else
{
++p;
}
}
[/Quote]
Bestrem_9 2010-04-24
  • 打赏
  • 举报
回复
同意,仁兄对数组和指针了解得很透彻。。。
[Quote=引用 1 楼 thefirstz 的回复:]
判断每一位是否是0或者1
你的代码中有个小疏漏,scanf("%s",&a); ,这里&a应该就是a,不要&
[/Quote]
boych 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]
控制台输入要想精确控制难度比较大,别的不说,楼主的这一段代码就是个缓冲区溢出漏洞……

还是考虑用GUI吧
[/Quote]

顶!!!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧