Convert the first letter of each word to capital letter without
    touching the rest of the word.

    @param string: a string.

    @param cleanse: ``True`` to remove any separator character from the
        string, such as comma; ``False`` to keeps any character but space.

    @return: a string for which the first letter of each word has been
        capitalized without modifying the case of the rest of the word.

def inicap_string(string,
        cleanse=False):
    """
    Convert the first letter of each word to capital letter without
    touching the rest of the word.

    @param string: a string.

    @param cleanse: ``True`` to remove any separator character from the
        string, such as comma; ``False`` to keeps any character but space.

    @return: a string for which the first letter of each word has been
        capitalized without modifying the case of the rest of the word.
    """
    return string and ' '.join(word[0].upper() + word[1:]
            for word in (string.split() if cleanse else string.split(' ')))