next up previous contents
Next: Handling I/O Up: char* Conversions Previous: Non-Constant char*: attach() and   Contents

char* Methods

Many functions in Str accept char* inputs. These functions include:

    bool equals(const char* cstr) const;
    bool startsWith(const char* cstr) const;
    inline bool endsWith(const char* cstr) const;
    inline void append(const char* cstr);
    inline void insert(const char* cstr, unsigned long idx);
    void format(const char* templ, ...);
    inline void  strip(const char* whitespace_set=0);
    inline void lstrip(const char* whitespace_set=0);
    inline void rstrip(const char* whitespace_set=0);
    unsigned int countTokens(unsigned long start_idx=0, 
                             const char* white_space_set=0) const;
    long copyToken(const Str& str, long start_idx=0, 
                   const char* white_space_set=0);
    Str* getAllTokens(unsigned int& token_count, 
                      const char* white_space_set=0) const;
    long findNext(const char* str, unsigned long start_position=0) const;
    unsigned long count(const char* str, 
                        unsigned long start_position=0) const;
    unsigned long replace(const char* old_str, const char* new_str, 
                          unsigned long start_position=0,
    Str &operator=(const char* cstr);
    operator const char* () const { return data; }

Note that some functions, such as strip(), only accept char* inputs (i.e. there is no Str& form). In this case, the automatic char* cast will automatically apply. This means that you can pass a Str object to strip() and similar functions without problems.

In the case where there is a separate Str& function defined in Str.hpp, such as equals(), it is usually because there is extra performance benefit from passing in a Str over a char*. In the case of equals, the function can quickly return false if the two string lengths are not equal.