- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在自学 C 并通过 K&R 进行工作。我正在做练习 1-21:
Write a Program entab that replaces strings of blanks by the minimum number of tabs and blanks to acheive the same spacing. Use the same tab stops as for detab.
我在做这个练习时遇到了困难,所以我在网上找到了解决方案,但我不明白。有人可以解释一下这段代码是如何工作的吗?
#include<stdio.h>
#define TABINC 8
int main(void)
{
int nb,nt,pos,c;
nb = 0;
nt = 0;
for(pos=1;(c=getchar())!=EOF;++pos)
if( c == ' ')
{
if((pos % TABINC) != 0)
++nb;
else
{
nb = 0;
++nt;
}
}
else
{
for( ; nt > 0 ; --nt)
putchar('\t');
if( c == '\t')
nb = 0;
else
for( ; nb > 0; --nb)
putchar(' ');
putchar(c);
if(c == '\n')
pos = 0;
else if ( c == '\t')
pos = pos + ( TABINC - (pos -1) % TABINC) - 1;
}
return 0;
}
最佳答案
代码是
当在 '\t'
的倍数位置遇到空格 ( ) 时,放置制表符 (
TABINC
) ,即选项卡的大小。
遇到制表符时,空格数会重置。这是为了更喜欢使用 Tab 来到达 Tabstop
举例说明:- * 中显示的空格- 标签显示在
中column: 1 2 3 4 5 6 7 8 9 10
input : * * * * h e l * * w
output: <tab>hel<tab>*w
在此示例中,当在可被 TABINC
整除的每个列位置遇到空格时,即 4(在本例中),插入制表符“\t”。否则空间。
希望这能给您一些想法。
关于c - 理解 k&r 中的 entab 示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395097/
我使用调试器来查找我的错误。我能够找到错误是什么。但我不知道为什么会发生。错误在于,在完成 1 次 push 后,linep 变成了一些垃圾地址(添加了 1 个空格)。因此,在第二次push时,它在这
在普通文本编辑器中,选择文本 block ,然后按 Tab 进行 entab,按 Shift + Tab 进行 detab。 如何在 VIM 中 entab 或 detab 选定的文本 block ?
这个问题已经有答案了: I'm trying to understand the K&R's exercise 1-21 [duplicate] (1 个回答) 已关闭 4 年前。 Exercise
我正在自学 C 并通过 K&R 进行工作。我正在做练习 1-21: Write a Program entab that replaces strings of blanks by the minim
这里是巨型 C 新生儿,您好 我正在尝试解决 KandR C 编程中的 entab 问题,但遇到了一个相当愚蠢的问题。在尝试解决这个问题时,我会计算所有空格达到 8 的倍数时的数量,如果是,我有一个循
我是一名优秀的程序员,十分优秀!