- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试要求用户输入两个二进制序列并检查它们是否有效。这是我的代码。
char seq1[8], seq2[8];
printf("Enter 1st 8-bit sequence: ");
scanf("%8s", seq1);
getchar();
printf("\nEnter 2nd 8-bit sequence: ");
scanf("%8s", seq2);
getchar();
printf("\n");
printf("%s\n", seq1);
printf("%s\n", seq2);
if(strlen(seq1) < 8 || strlen(seq2) < 8){
printf("Error: must enter 8-bits\n");
exit(1);
}
for(int i = 0; seq1[i]!='\0'; i++){
if(seq1[i]>48||seq1[i]<49){
printf("Error: non-binary detected\n");
exit(1);
}
}
for(int i = 0; seq2[i]!='\0'; i++){
if(seq2[i]>48||seq2[i]<49){
printf("Error: non-binary detected\n");
exit(1);
}
}
打印字符串时,我将第二个字符串 (seq2) 添加到 seq1 的末尾,并且它总是返回为“检测到非二进制”,即使它全是 1 和 0。
最佳答案
您的代码有一些问题。
让我们尝试在您的诊断消息中添加一些额外信息:
if (strlen(seq1) < 8 || strlen(seq2) < 8)
{
printf("Error: must enter 8-bits; strlen(seq1) = %zu strlen(seq2) = %zu\n", strlen(seq1), strlen(seq2));
exit(1);
}
for (int i = 0; seq1[i] != '\0'; i++)
{
if (seq1[i] > 48 || seq1[i] < 49)
{
printf("Error: non-binary detected (seq1[%d] = 0x%hhX)\n", i, seq1[i]);
exit(1);
}
}
for (int i = 0; seq2[i] != '\0'; i++)
{
if (seq2[i] > 48 || seq2[i] < 49)
{
printf("Error: non-binary detected (seq2[%d] = 0x%hhX)\n", i, seq2[i]);
exit(1);
}
}
我们立即观察到错误消息:Error: non-binary detected (seq1[0] = 0x31)
。这很奇怪,因为 0x31 是数字 1 的 ASCII 代码,它应该是可接受的二进制数字。在这里重新考虑您的逻辑:
seq1[i] > 48 || seq1[i] < 49 // In other words seq1[i] > '0' || seq1[i] < '1'
如果 seq1[i]
包含大于 '0'
的值或者它包含小于 的值,则此语句为真'1'
。换句话说,此语句将始终 为真并调用错误处理程序。您要测试的正确条件是:
if(seq1[i] != '0' && seq1[i] != '1')
此外,如果您正在读取一个 8 个字符长的字符串,则您的缓冲区中至少需要 9 个字符来保存空终止符。
此外,在条件中显式包含 != '\0'
是多余的。
关于c - 接受来自用户的二进制字符串并检查其在 C 中的有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519760/
网站的日常维护通常涉及验证链接是否有效、标记不良链接等。 我知道如何通过脚本匹配电子邮件地址(尤其是在它们位于 mailto: 链接中的网页上下文中)。我的问题是如何在不向地址发送垃圾邮件的情况下验证
我正在尝试将大型 UInt16 数组保存到文件中。 positionCnt大约是50000,stationCnt大约是2500。直接保存,没有GZipStream,文件大约250MB,可以通过外部zi
我正在寻找表格方面的 HTML5 规范。我正在做一个有很多数据表的网络应用程序。 这些表通常有一个数据库行映射到一个表行。一切都很好。然而,一个特定的问题 child 有太多的列,需要将其分布在表中的
我目前正在研究用于客户端目的的Azure流媒体服务,我想知道是否有一种方法可以为自适应流媒体创建时间有限的URL(出于安全目的,我们需要这个,当用户想要流媒体时,我们会验证权限)创建限时 URL)。我
我目前正在研究用于客户端目的的Azure流媒体服务,我想知道是否有一种方法可以为自适应流媒体创建时间有限的URL(出于安全目的,我们需要这个,当用户想要流媒体时,我们会验证权限)创建限时 URL)。我
我想做的是测试我编写的一些 Lucene 代码,并且想要一些有关使用 JUnit 进行测试时的最佳实践的信息。顺便说一句,Lucene 是一个搜索引擎,您可以使用它创建一个平面文件来索引一堆数据。 所
我有一个 .net 核心应用程序,我在注册后创建了一个电子邮件 token ,然后通过电子邮件发送它。这个想法是,用户可以在客户端应用程序中使用该电子邮件 token ,我想检查它的有效性(如果它过期
我的印象是使用 javascript 经常破坏 W3C xhtml/css 有效性。这是真的?如果是这样,为什么我可以在我的网页中使用 javascript 并且仍然使它们符合 W3C 标准(html
我简直是在绞尽脑汁想弄明白这个问题。给定一个无向连通图 G , G 中的所有边都具有未知成本,但已知每条边的每个成本的区间,例如边 e 的成本在闭区间 [i,j] 中,其中 i 和 j 是实数。我还得
检查 URL 有效性的一种直接方法是简单地处理 MalformedURLException 异常: try { URL base = new URL(SomeString); } catch (M
如何在 shell 脚本中检查 0.0.0.0 到 255.255.255.255 范围内的 IP 地址的有效性? 最佳答案 如果您使用的是 bash,则可以对模式进行简单的正则表达式匹配,而无需验证
我已成功通过我的 Angular 应用程序中的 Azure AD ( https://login.microsoftonline.com/ {tenantId}/oauth2/v2.0/authori
我已经获得了文件:一个 .der- 和一个 .p12-文件,以及一个 key 对,我们应该用它来在 Java 代码中创建和验证数字签名。 我必须将两个 key 保存在 MySql-Database-T
我一直在关注 this使用 lumen 和 vuejs 进行身份验证的教程。我正在使用 this库(tymon/jwt-auth)。 一切正常。我的 API 为我的数据处理所有事情,并为我的前端框架提
我想知道,但是引用交易必须在过去 730 天内发生,因为账单协议(protocol) ID 可能在两年后不可用。因此,如果第一笔交易在到期前完成,可以说是在 600 天之后,那么 ID 将在 130
std::string.npos 曾经有效吗? (与正确的 std::string::npos 相反。) 我在我正在处理的一个旧项目中经常看到它,它不能用 VS2010 编译。 它是前标准时代的东西吗
我正在使用 Passport 来验证用户进入我的应用程序 我已经为此创建了一个通行证策略 passport.use(new GoogleStrategy({ clientID: process
我正在使用来自 API 的 URL,其中搜索词用引号括起来。例如:http://www.example.com/searchterm="搜索"。 但是,由于引号,我的 NSURL(由 URLWithS
有谁知道 GitLab 上 OAuth 访问 token 的有效期是多少? 至少需要 12 小时(根据经验),但我想确定一下,所以我不会不必要地刷新 token 。 PS:亚搏体育app ...如果在
使用 FirebaseStorage 的 getDownloadUrl 时,我对 url(&token=) 中的“ token ”有疑问。 https://firebasestorage.google
我是一名优秀的程序员,十分优秀!