# StringPiece Class Reference

A string-like object that points to a sized piece of memory. More...

`#include <stringpiece.h>`

Inheritance diagram for StringPiece:

## Public Member Functions
| StringPiece ()
| Default constructor, creates an empty StringPiece.
| StringPiece (const char *str)
| Constructs from a NUL-terminated const char * pointer.
| StringPiece (const U_STD_NSQ string &str)
| Constructs from a std::string.
| StringPiece (const char *offset, int32_t len)
| Constructs from a const char * pointer and a specified length.
| StringPiece (const StringPiece &x, int32_t pos)
| Substring of another StringPiece.
| StringPiece (const StringPiece &x, int32_t pos, int32_t len)
| Substring of another StringPiece.
const char * | data () const
| Returns the string pointer.
int32_t | size () const
| Returns the string length.
int32_t | length () const
| Returns the string length.
UBool | empty () const
| Returns whether the string is empty.
void | clear ()
| Sets to an empty string.
void | set (const char *data, int32_t len)
| Reset the stringpiece to refer to new data.
void | set (const char *str)
| Reset the stringpiece to refer to new data.
void | remove_prefix (int32_t n)
| Removes the first n string units.
void | remove_suffix (int32_t n)
| Removes the last n string units.
StringPiece | substr (int32_t pos, int32_t len=npos) const
| Returns a substring of this StringPiece.
## Static Public Attributes
static const int32_t | npos = 0x7fffffff
| Maximum integer, used as a default value for substring methods.

## Detailed Description

A string-like object that points to a sized piece of memory.

We provide non-explicit singleton constructors so users can pass in a "const char*" or a "string" wherever a "StringPiece" is expected.

Functions or methods may use const StringPiece& parameters to accept either a "const char*" or a "string" value that will be implicitly converted to a StringPiece.

Systematic usage of StringPiece is encouraged as it will reduce unnecessary conversions from "const char*" to "string" and back again.

Stable:
  ICU 4.2

Definition at line 52 of file stringpiece.h.

## Constructor & Destructor Documentation

StringPiece::StringPiece | ( |  | ) | `[inline]`

Default constructor, creates an empty StringPiece.

Stable:
  ICU 4.2

Definition at line 62 of file stringpiece.h.

StringPiece::StringPiece | ( | const char * | str | ) |

Constructs from a NUL-terminated const char * pointer.

Parameters:

  | str | a NUL-terminated const char * pointer

Stable:
  ICU 4.2

StringPiece::StringPiece | ( | const U_STD_NSQ string & | str | ) | `[inline]`

Constructs from a std::string.

Stable:
  ICU 4.2

Definition at line 74 of file stringpiece.h.

StringPiece::StringPiece | ( | const char * | offset,
|  | int32_t | len |
| ) |  |  | `[inline]`

Constructs from a const char * pointer and a specified length.

Parameters:

  | offset | a const char * pointer (need not be terminated)
  | len | the length of the string; must be non-negative

Stable:
  ICU 4.2

Definition at line 83 of file stringpiece.h.

StringPiece::StringPiece | ( | const StringPiece & | x,
|  | int32_t | pos |
| ) |  |  |

Substring of another StringPiece.

Parameters:

  | x | the other StringPiece
  | pos | start position in x; must be non-negative and <= x.length().

Stable:
  ICU 4.2

StringPiece::StringPiece | ( | const StringPiece & | x,
|  | int32_t | pos,
|  | int32_t | len |
| ) |  |  |

Substring of another StringPiece.

Parameters:

  | x | the other StringPiece
  | pos | start position in x; must be non-negative and <= x.length().
  | len | length of the substring; must be non-negative and will be pinned to at most x.length() - pos.

Stable:
  ICU 4.2

## Member Function Documentation

void StringPiece::clear | ( |  | ) | `[inline]`

Sets to an empty string.

Stable:
  ICU 4.2

Definition at line 135 of file stringpiece.h.

References NULL.

const char* StringPiece::data | ( |  | ) | const`[inline]`

Returns the string pointer.

May be NULL if it is empty.

data() may return a pointer to a buffer with embedded NULs, and the returned buffer may or may not be null terminated. Therefore it is typically a mistake to pass data() to a routine that expects a NUL terminated string.

Returns:
  the string pointer

Stable:
  ICU 4.2

Definition at line 111 of file stringpiece.h.

UBool StringPiece::empty | ( |  | ) | const`[inline]`

Returns whether the string is empty.

Returns:
  TRUE if the string is empty

Stable:
  ICU 4.2

Definition at line 129 of file stringpiece.h.

int32_t StringPiece::length | ( | void |  | ) | const`[inline]`

Returns the string length.

Same as size().

Returns:
  the string length

Stable:
  ICU 4.2

Definition at line 123 of file stringpiece.h.

void StringPiece::remove_prefix | ( | int32_t | n | ) | `[inline]`

Removes the first n string units.

Parameters:

  | n | prefix length, must be non-negative and <=length()

Stable:
  ICU 4.2

Definition at line 157 of file stringpiece.h.

void StringPiece::remove_suffix | ( | int32_t | n | ) | `[inline]`

Removes the last n string units.

Parameters:

  | n | suffix length, must be non-negative and <=length()

Stable:
  ICU 4.2

Definition at line 172 of file stringpiece.h.

void StringPiece::set | ( | const char * | str | ) |

Reset the stringpiece to refer to new data.

Parameters:

  | str | a pointer to a NUL-terminated string.

Internal:
  Do not use. This API is for internal use only.

void StringPiece::set | ( | const char * | data,
|  | int32_t | len |
| ) |  |  | `[inline]`

Reset the stringpiece to refer to new data.

Parameters:

  | data | pointer the new string data. Need not be nul terminated.
  | len | the length of the new data

Internal:
  Do not use. This API is for internal use only.

Definition at line 143 of file stringpiece.h.

int32_t StringPiece::size | ( |  | ) | const`[inline]`

Returns the string length.

Same as length().

Returns:
  the string length

Stable:
  ICU 4.2

Definition at line 117 of file stringpiece.h.

StringPiece StringPiece::substr | ( | int32_t | pos,
|  | int32_t | len = `npos` |
| ) |  |  | const`[inline]`

Returns a substring of this StringPiece.

Parameters:

  | pos | start position; must be non-negative and <= length().
  | len | length of the substring; must be non-negative and will be pinned to at most length() - pos.

Returns:
  the substring StringPiece

Stable:
  ICU 4.2

Definition at line 196 of file stringpiece.h.

## Field Documentation

const int32_t StringPiece::npos = 0x7fffffff`[static]`

Maximum integer, used as a default value for substring methods.

Stable:
  ICU 4.2

Definition at line 186 of file stringpiece.h.

The documentation for this class was generated from the following file:

- stringpiece.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines