Word Wrap

Level: Intermediate

Concepts: Strings


Create a program that wraps text at a specified column width.

Requirements

  1. Implement text wrapping rules:
    • Break text at word boundaries when possible
    • Break words only if they exceed the column width
    • Preserve whitespace between words
    • Handle multiple spaces and tabs
  2. Handle edge cases:
    • Empty input
    • Input shorter than column width
    • Words longer than column width
    • Multiple consecutive spaces
  3. Return appropriate results:
    • Wrapped text as a string
    • Error message for invalid inputs

Test Cases

Input Column Width Expected Output Notes
"Hello" 5 "Hello" No wrapping needed
"Hello World" 5 "Hello\nWorld" Break at word boundary
"Hello World" 7 "Hello\nWorld" Break at word boundary
"Hello World" 20 "Hello World" No wrapping needed
"Supercalifragilisticexpialidocious" 10 "Supercalif\nragilisti\ncexpiali\ndocious" Break long word
"Hello World" 5 "Hello\nWorld" Handle multiple spaces

Edge Cases to Consider

  • Empty string
  • Null input
  • Zero or negative column width
  • Very long words
  • Multiple consecutive spaces or tabs
  • Text with line breaks

Tips

  • Start with simple cases (no wrapping needed)
  • Add word boundary breaking next
  • Then handle long words
  • Finally add whitespace handling
  • Consider using regular expressions for word boundaries