Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!
  • Rust

Idiom #49 Split a space-separated string

Build list chunks consisting in substrings of the string s, separated by one or more space characters.

Turning the string "what a mess" into the 3 strings "what", "a", "mess"
let chunks: Vec<_> = s.split_whitespace().collect();

This regards all whitespace as separators, including \t and \n.
let chunks: Vec<_> = s.split_ascii_whitespace().collect();

This regards all ASCII whitespace as separators, including \t and \n.
let chunks: Vec<_> = s.split(' ').collect();

Warning: this returns some empty strings in chunks, in case of multiple consecutive spaces in the s.
#include <string.h>
chunks[0] = strtok(s, " ");
for (int i = 1; i < N; ++i)
{
    chunks[i] = strtok(NULL, " ");
    
    if (!chunks[i])
        break;
}

N is the size of chunks.

strtok modifies s by adding null-characters between words.

New implementation...