c - C 中的 for 循环 ;for(conditions); 一个命令;
问题描述
这个 for 循环是如何工作的?
for (i = 0; N[i] != 0 && N[i] != '.'; i++);N[i] = 0;printf("%s", N);
输入:N = 123456.789(字符)
出:123456
具体来说,我对 for 循环的了解是
for(i=0;i<10;i++){sentences}
for(i=0;i<10;i++) a sentence;
这个 for 循环是如何工作的?
解决方案
不要将其写在不可读的单行上,而是将其拆分(为了清楚起见,使用'\0'
而不是0
字符):
for (i = 0; N[i] != '\0' && N[i] != '.'; i++)
; // Empty loop
N[i] = '\0';
printf("%s", N);
这会增加索引i
,直到字符串中的字符N
是 a '.'
,或者直到您到达字符串的末尾。
然后它将索引处的字符替换为i
NUL 字符串终止符(您的代码将其写为0
,这很好,但我发现'\0'
更清楚地显示了意图)。如果这已经是字符串的结尾,则什么也不做。如果它是 a '.'
,这将截断句点处的字符串。
然后它打印这个被截断的字符串,没有它删除的句点。
推荐阅读
- reactjs - React Context API - 从 axios 响应创建上下文
- java - Maven、模块和 JasperReports
- c++ - 一个简单的代码但仍然错误 - 分配函数'void pinMode(uint8_t,uint8_t)'
- java - 将对象数组存储到Java中的文本文件中
- angular - 在 Angular 8 中显示地图属性
- algorithm - 不同的决策树修剪方法
- javascript - 如何通过重新运行 javascript 来使用 selenium 刷新页面的一部分
- docker - Ubuntu Container中的Flask + Gunicorn,没有连接
- r - What is the best way of removing an element from a list of objects in R
- google-drive-api - 即使配置了授权字段,Google 幻灯片也会返回“提供的图像格式不受支持”