【发布时间】:2017-06-05 15:45:46
【问题描述】:
我有一个接受字符串输入的 c 程序我想检查这些输入是否是二进制值我该怎么做?
例如,如果用户输入“1001”我怎样才能检查它是否是二进制文件尽量不使用指针请在c中也这样做也不要使用数学库
@Mywork 到目前为止 我将字符串转换为整数并使用 atoi 函数 这是我检查整数的函数
@程序重新解释 我正在使用 scanf 函数接收两个输入,并将它们存储为字符串,用户应该输入两个二进制数。然后我想检查并确保这些数字中的每一个都是二进制的。下面是一些例子
INput: 101001 100101
Both Stored As String.
Output:function checks and see thats they are both binary
That is a correct way I want it to run. Here is another example
Input:1001hshds101 100101
Both stored as String
Output: Checks both strings and knows that the first string is wrong
//SOme of my work (ignore this for the most part)
int binCheck(long long int input){
int dv;
while(input! = 0){
dv = input%10;
if(dv>1){
return 0;
}
input = input/10;
}
return 1;
}
【问题讨论】:
-
这听起来像是另一个作业。你都尝试了些什么?向我们展示一些代码,我们将提供帮助
-
@SeekAddo 刚刚添加了一些代码。
-
我想这里“二进制”的定义是一个十进制表示只包含0和1的数字,如果我错了,请纠正我。您的
binCheck函数对我来说似乎是正确的。那么真正的问题在哪里? -
@MichaelWalz 是的,这是正确的,问题是如果用户输入“101hsjfh”它不起作用。
-
@donaldTheProgrammer 请向我们展示相关代码。但无论如何,从我从你的描述中了解到,这是很正常的,
atoi在第一个非数字数字处停止,所以如果你的字符串是"101hsf",atoi将简单地返回 101,忽略"hsf"。为什么不直接扫描字符串并直接检查 '1' 和 '0' 以外的字符?这段代码会更短,binCheck和atoi都不会,它会做你想做的事。