我对KandR C ex1-21 entab的尝试需要帮助

时间:2016-10-25 15:05:03

标签: c

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个空格时:         “#”

感谢任何指针!

1 个答案:

答案 0 :(得分:0)

你忘了向附近移动计数

                a = count;
                while(a > (count - TAB) -1)
                {
                    line[a] = '\0';
                    --a;
                }

                line[count] = '#';
                ++count;