# 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 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 | 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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 52 of file stringpiece.h.

## Constructor & Destructor Documentation

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

Default constructor, creates an empty StringPiece.

Draft:
  This API may be changed in the future versions and was introduced in 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

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

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

Draft:
  This API may be changed in the future versions and was introduced in 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().

Draft:
  This API may be changed in the future versions and was introduced in 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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

## Member Function Documentation

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

Sets to an empty string.

Draft:
  This API may be changed in the future versions and was introduced in 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

Draft:
  This API may be changed in the future versions and was introduced in 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

Draft:
  This API may be changed in the future versions and was introduced in 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

Draft:
  This API may be changed in the future versions and was introduced in 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()

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 142 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()

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 157 of file stringpiece.h.

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

Returns the string length.

Same as length().

Returns:
  the string length

Draft:
  This API may be changed in the future versions and was introduced in 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

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 181 of file stringpiece.h.

## Field Documentation

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

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

Draft:
  This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 171 of file stringpiece.h.

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

- stringpiece.h