Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
string_utils_example.C File Reference

Example demonstrating string manipulation utilities in Aleph-w. More...

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <tclap/CmdLine.h>
#include <htlist.H>
#include <ah-string-utils.H>
Include dependency graph for string_utils_example.C:

Go to the source code of this file.

Functions

void print_section (const string &title)
 
void print_subsection (const string &title)
 
void show_string (const string &label, const string &s)
 
void demo_trimming ()
 
void demo_case_conversion ()
 
void demo_splitting ()
 
void demo_joining ()
 
void demo_validation ()
 
void demo_filtering ()
 
void demo_formatting ()
 
void demo_conversion ()
 
void demo_practical ()
 
int main (int argc, char *argv[])
 

Detailed Description

Example demonstrating string manipulation utilities in Aleph-w.

This program demonstrates comprehensive string manipulation utilities from ah-string-utils.H, providing functionality beyond standard C++ string operations. These utilities are essential for text processing, data parsing, and formatting tasks.

Features Demonstrated

Trimming Operations

  • ltrim(): Remove leading whitespace
  • rtrim(): Remove trailing whitespace
  • trim(): Remove both leading and trailing whitespace
  • Custom trim: Trim specific characters, not just whitespace

Case Conversion

  • tolower(): Convert string to lowercase
  • toupper(): Convert string to uppercase
  • to_name(): Convert to title case (first letter uppercase)

Splitting and Joining

  • split(): Split string by delimiter into list
  • join(): Join list of strings with delimiter
  • split_lines(): Split by newlines

Validation

Text Formatting

Character Filtering

Common Use Cases

  • Data parsing: Clean and validate input strings
  • Text processing: Format and transform text
  • File I/O: Process file contents line by line
  • User input: Sanitize and validate user input
  • Report generation: Format text for output
  • CSV/TSV processing: Split and join delimited data

Performance Considerations

  • Most operations are O(n) where n is string length
  • In-place operations (like trim) modify the string directly
  • Split operations create new containers (memory overhead)
  • For large strings, consider using iterators or views

Usage Examples

# Run all demonstrations
./string_utils_example
# Run specific section
./string_utils_example -s trim # Trimming demos
./string_utils_example -s case # Case conversion
./string_utils_example -s split # Splitting strings
./string_utils_example -s join # Joining strings
./string_utils_example -s validate # Validation helpers
./string_utils_example -s filter # Filter/keep/remove helpers
./string_utils_example -s format # Formatting helpers
./string_utils_example -s convert # Type conversions
./string_utils_example -s practical # Practical example
# Show help
./string_utils_example --help

Comparison with Standard Library

Feature std::string Aleph-w utils
Trim Manual (find_first_not_of) trim(), ltrim(), rtrim()
Case std::transform + tolower tolower(), toupper()
Split Manual loop split() with delimiter
Join Manual loop join() with delimiter
Validation Manual parsing is_numeric(), is_integer()

Aleph-w utilities provide more convenient, higher-level operations.

See also
ah-string-utils.H String manipulation utilities header
parse_utils.H Advanced parsing utilities
Author
Leandro Rabindranath León
Date
2024

Definition in file string_utils_example.C.

Function Documentation

◆ demo_case_conversion()

void demo_case_conversion ( )

◆ demo_conversion()

void demo_conversion ( )

◆ demo_filtering()

◆ demo_formatting()

void demo_formatting ( )

◆ demo_joining()

◆ demo_practical()

void demo_practical ( )

◆ demo_splitting()

void demo_splitting ( )

◆ demo_trimming()

void demo_trimming ( )

◆ demo_validation()

◆ main()

◆ print_section()

◆ print_subsection()

void print_subsection ( const string &  title)

◆ show_string()

void show_string ( const string &  label,
const string &  s 
)