使用“小于”运算符检查NUL时,for循环字符串迭代不起作用

最高

为什么这样做:

char Word[]="monkey";
for (int Index = 0; Word[Index] != '\0'; Index++)
{
    printf("%c", Word[Index]);
}

这不是吗?

char Word[]="monkey";
for (int Index = 0; Word[Index] < '\0'; Index++)
{
    printf("%c", Word[Index]);
}

老实说,我认为没有任何区别。

马克·博内利

虽然char是带符号类型,但ASCII字符是非负数,并且从0到127。因此,在第二个示例中,由于字符串中的所有字符都是ASCII字符,因此您的条件永远不会达到true。

如果您确实想使用以外的其他方法!=,则唯一的选择是>

char Word[] = "monkey";
for (int Index = 0; Word[Index] > '\0'; Index++)
{
    printf("%c", Word[Index]);
}

注意:虽然这种方法有效,但可能会造成混乱并且容易出错,您应该始终选择!= '\0'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查某些字符的空字符串时,“ not in”身份运算符不起作用

VBA使用类似运算符在数组中查找字符串不起作用

不等于运算符(!=)在python字符串比较中不起作用

字符串中的一元增量运算符不起作用

为什么在使用“不等于”时,if运算符或运算符不起作用?

使用Is运算符比较循环中的字符串

使用“ in”运算符时,字符串何时是对象?

尝试使用三级/条件运算符将字符串与 aa 值进行比较,但它不起作用

对F#中的字符串使用小于比较运算符

使用赋值运算符和字符串列名更新数据表列的值不起作用

为什么在使用三元if / else运算符时,增量运算符(++ /-)不起作用?

SQL Server-LIKE运算符在搜索部分字符串而不是整个字符串时起作用

“错误:检查字符串的值时,运算符==”不匹配

重击:使用管道运算符时,陷阱ERR不起作用

使用逻辑运算符时Excel数组公式不起作用

当我使用 tailwindcss 时,扩展运算符不起作用

当我使用 OR (sqlite db) 时,NOT LIKE 运算符不起作用

在 EWS 上使用 AND 运算符时搜索过滤器不起作用?

grep“ +”运算符不起作用

grep“ +”运算符不起作用

运算符T(){}-不起作用

覆盖的运算符不起作用

!=运算符不起作用

对于字符串切片的循环迭代不起作用

创建字符串时的Elvis运算符

SQL LIKE运算符仅在使用%时起作用

小于<运算符无法识别我是否设置为字符串PHP

逻辑运算符Python 2 ==在迭代数据框中不起作用

使用运算符 (%) 作为字符串时出现问题