Word wrap: Difference between revisions

2,650 bytes added ,  11 months ago
→‎{{header|C}}: Add a simple in-place method
(→‎{{header|C}}: Add a simple in-place method)
Line 973:
 
=={{header|C}}==
===Smart wrapping===
<syntaxhighlight lang="c">#include <stdio.h>
#include <stdlib.h>
Line 1,152 ⟶ 1,153:
return 0;
}</syntaxhighlight>
 
===In-place greedy===
Long words exceeding the line length are not wrapped.
<syntaxhighlight lang="c">
#include <stdio.h>
#include <string.h>
 
void wrap_text(char *line_start, int width) {
char *last_space = 0;
char *p;
 
for (p = line_start; *p; p++) {
if (*p == '\n') {
line_start = p + 1;
}
 
if (*p == ' ') {
last_space = p;
}
 
if (p - line_start > width && last_space) {
*last_space = '\n';
line_start = last_space + 1;
last_space = 0;
}
}
}
 
char const text[] =
"In olden times when wishing still helped one, there lived a king whose "
"daughters were all beautiful, but the youngest was so beautiful that the "
"sun itself, which has seen so much, was astonished whenever it shone in "
"her face. Close by the king's castle lay a great dark forest, and under "
"an old lime-tree in the forest was a well, and when the day was very "
"warm, the king's child went out into the forest and sat down by the side "
"of the cool fountain, and when she was bored she took a golden ball, and "
"threw it up on high and caught it, and this ball was her favorite "
"plaything.";
 
int main(void) {
char buf[sizeof(text)];
 
puts("--- 80 ---");
memcpy(buf, text, sizeof(text));
wrap_text(buf, 80);
puts(buf);
 
puts("\n--- 72 ---");
memcpy(buf, text, sizeof(text));
wrap_text(buf, 72);
puts(buf);
}
</syntaxhighlight>
{{out}}
<pre>
--- 80 ---
In olden times when wishing still helped one, there lived a king whose daughters
were all beautiful, but the youngest was so beautiful that the sun itself, which
has seen so much, was astonished whenever it shone in her face. Close by the
king's castle lay a great dark forest, and under an old lime-tree in the forest
was a well, and when the day was very warm, the king's child went out into the
forest and sat down by the side of the cool fountain, and when she was bored she
took a golden ball, and threw it up on high and caught it, and this ball was her
favorite plaything.
 
--- 72 ---
In olden times when wishing still helped one, there lived a king whose
daughters were all beautiful, but the youngest was so beautiful that the
sun itself, which has seen so much, was astonished whenever it shone in
her face. Close by the king's castle lay a great dark forest, and under
an old lime-tree in the forest was a well, and when the day was very
warm, the king's child went out into the forest and sat down by the side
of the cool fountain, and when she was bored she took a golden ball, and
threw it up on high and caught it, and this ball was her favorite
plaything.
</pre>
 
=={{header|C sharp}}==
89

edits