【发布时间】:2018-12-11 19:53:20
【问题描述】:
我正在尝试创建一个函数,该函数接受字符串和一个表示要创建的每条线的宽度的数字。
它接受输入的方式如下: WrapText(string,20);
这个函数应该做的是在每一行放置字符串的最大“宽度”字符(在本例中为 20 个)。
换行前:
Lorem ipsum dolor sit amet,consectetuer adipiscing elit。 Curabitur vitae diam non enim vestibulum interdum。
包装后:
Lorem ipsum dolor
坐下,
连接器
肥胖精英。
Curabitur vitae diam
非敌人前庭
中间体。
一行中最多 20 个字符,并且该行必须适合整个单词,而不是中间切开。
有人可以帮我解决这个问题吗?我尝试了一些东西,但我就是做错了。
我尝试过的东西:
int x=0,line=0,total=0;
while(arr[x]!='\0'){
if(arr[x]!=' '){
line++;
}else{
if(total+line>=width){
arr[x]='\n';
}else{
line++;
total+=line;
}
line=0;
}
x++;
}
【问题讨论】:
-
我尝试了一些东西 - 向我们展示这些东西并解释它为什么不起作用。
-
我可以推荐 K&R 的书。慢慢来,如果你真的想学 C,那是值得的。这个练习实际上是书中的练习之一。它会教你任何你需要的东西。
-
@EugeneSh。我添加了我制作的代码,它适用于第一行,但它只是中断并在每一行上放置一个单词。
-
是时候学习如何调试了;这是程序员将要学习的最重要的一项技能。 ericlippert.com/2014/03/05/how-to-debug-small-programs
-
您没有重置您的计数器。因此,创建第一行后,您需要将
total和line重置为零。但是,还要注意这一更改将打印出超过 20 个字符的行。
标签: c