我正在用C语言编写Kernighan和Ritchie的程序。
我目前在练习1-22中说:
编写一个程序,将长的输入行“折叠”成两行或更短的行,这些行发生在输入的第n列之前的
last > non-blank character之后。确保您的程序具有非常长的行长度,并且如果在指定列之前没有空白或选项卡,请确保程序执行一些智能操作。
我的问题不是怎么做这个节目..。我的问题是我应该在什么地方折线。
“在最后一个非空白字符之后”是什么意思?我应该在哪里折线?
拜托伙计们别告诉我节目本身。我想自己做。
我只想知道我应该在哪一条线折叠。
编辑:还有另一个问题..。
如果我的行包含tabs怎么办?在这种情况下,行的列长度从字符长度增加。应该考虑什么长度?
编辑2
智能的东西..。为了解决标签的问题我有个主意..。
在1-22 -- 1-20和1-21之前有2次锻炼。它们是entab和detab。你们一定知道..。所以我先把线脱了,然后折起来,然后再把折线套上.我想这将是最聪明的标签。有人吗?
发布于 2013-02-10 12:32:39
我认为这个练习基本上是模仿你可能在文本编辑器上看到的一个“单词包装”函数。“空白”意为“空格”,例如空格或制表符。
示例:
"Once upon a time"如果要求您在输入的第14列后“折叠”该行,则第14个字符是“时间”中的"i“。您的输出应该是两行:"Once upon a", "time"。
这个问题还说,要有很长的队伍才能聪明。
例如,
"Once upon a time Once upon a time Once upon a time"如果将该行拆分为14个字符,则应考虑行必须拆分为两行以上这一事实。
还有一种情况是,一个单词可能很长,阻止你分裂它:
"Deoxyribonucleicacid is DNA"如果将其拆分为14个字符,则在" is"之前不会找到任何空白字符,因此单词应该被拆分。
最后,我同意这个问题有点模棱两可,但是只要您按照所需内容编写代码,您就在学习,所以我不会担心对细节过于拖延。祝你好运:)
https://stackoverflow.com/questions/14797734
复制相似问题