Hi Gigantic C Newborn在这里
我正在尝试解决KandR C编程中的entab问题,我遇到了一个相当愚蠢的问题。 在尝试解决它时,我计算所有空间,当它们达到8的倍数时,如果它们是,我有一个循环,应该后退并删除前七个空格,然后使第零个空格为'#'表示选项卡。如果空格不计到8,则空格应用'。'表示。如果按下Tab键,用户也会得到一个'#'。 我的问题是,当我数到8时,空格不会被移除,如果我数到9,我会得到'。#'。
请告诉我我的新手代码有什么问题?
"........"
我的输出是: 键入8个空格时: ./ex1-21
@Stateless(mappedName = "jndiName", name = "jndiName")
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
键入9个空格时: “#”
感谢任何指针!
答案 0 :(得分:0)
你忘了向附近移动计数
a = count;
while(a > (count - TAB) -1)
{
line[a] = '\0';
--a;
}
line[count] = '#';
++count;