GNU Octave 7.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::string Namespace Reference

Octave string utility functions. More...

Enumerations

enum  u8_fallback_type { U8_REPLACEMENT_CHAR , U8_ISO_8859_1 }
 

Functions

OCTAVE_API Complex str2double (const std::string &str_arg)
 
template<typename T >
OCTAVE_API bool strcmp (const T &str_a, const T &str_b)
 True if strings are the same. More...
 
template<typename T >
OCTAVE_API bool strcmp (const T &str_a, const typename T::value_type *str_b)
 True if string is the same as character sequence. More...
 
template<typename T >
OCTAVE_API bool strcmpi (const T &str_a, const T &str_b)
 True if strings are the same, ignoring case. More...
 
template<typename T >
OCTAVE_API bool strcmpi (const T &str_a, const typename T::value_type *str_b)
 True if string is the same as character sequence, ignoring case. More...
 
template<typename T >
OCTAVE_API bool strncmp (const T &str_a, const T &str_b, const typename T::size_type n)
 True if the first N characters are the same. More...
 
template<typename T >
OCTAVE_API bool strncmp (const T &str_a, const typename T::value_type *str_b, const typename T::size_type n)
 True if the first N characters are the same. More...
 
template<typename T >
OCTAVE_API bool strncmpi (const T &str_a, const T &str_b, const typename T::size_type n)
 True if the first N characters are the same, ignoring case. More...
 
template<typename T >
OCTAVE_API bool strncmpi (const T &str_a, const typename T::value_type *str_b, const typename T::size_type n)
 True if the first N characters are the same, ignoring case. More...
 
OCTAVE_API std::string u8_from_encoding (const std::string &who, const std::string &native_string, const std::string &encoding)
 
OCTAVE_API std::string u8_to_encoding (const std::string &who, const std::string &u8_string, const std::string &encoding)
 
OCTAVE_API unsigned int u8_validate (const std::string &who, std::string &in_string, const u8_fallback_type type=U8_REPLACEMENT_CHAR)
 

Detailed Description

Octave string utility functions.

This functions provide a C++ interface to most string functions available in the Octave interpreter.

Specializations for Array may consider its dimensions in addition to the actual string contents.

Attention
Octave's string comparison functions return true when strings are are equal, just the opposite of the corresponding C library functions. In addition, Octave's function only return bool and do not check lexicographical order.

Enumeration Type Documentation

◆ u8_fallback_type

Enumerator
U8_REPLACEMENT_CHAR 
U8_ISO_8859_1 

Definition at line 149 of file oct-string.h.

Function Documentation

◆ str2double()

Complex octave::string::str2double ( const std::string &  str_arg)

Definition at line 462 of file oct-string.cc.

References extract_num(), NaN, and set_component().

Referenced by octave::attempt_type_conversion(), and Fstr2double().

◆ strcmp() [1/2]

template<typename T >
OCTAVE_API bool octave::string::strcmp ( const T &  str_a,
const T &  str_b 
)

True if strings are the same.

Specialization for Array<char>

When comparing whole Array of chars, the actual Array dimensions are significant. A column vector and row vector with the same char array, will still return false.

Referenced by mxArray_struct::get_field_number(), mxArray_base::is_class(), main(), mexGetVariable(), mexPutVariable(), octave_get_sig_number(), octave::bp_table::parse_dbfunction_params(), and strcmp_ignore_n().

◆ strcmp() [2/2]

template<typename T >
OCTAVE_API bool octave::string::strcmp ( const T &  str_a,
const typename T::value_type *  str_b 
)

True if string is the same as character sequence.

Compares a string to the null-terminated character sequence beginning at the character pointed to by str_b.

Specialization for Array<char>

For purposes of comparison of dimensions, the character sequence is considered to be a row vector.

◆ strcmpi() [1/2]

template<typename T >
OCTAVE_API bool octave::string::strcmpi ( const T &  str_a,
const T &  str_b 
)

True if strings are the same, ignoring case.

Specialization for Array<char>

When comparing whole Array of chars, the actual Array dimensions are significant. A column vector and row vector with the same char array, will still return false.

Referenced by Fchol(), Feig(), Fjsondecode(), Fjsonencode(), octave::Utils::fromHVAlign(), and strcmpi_ignore_n().

◆ strcmpi() [2/2]

template<typename T >
OCTAVE_API bool octave::string::strcmpi ( const T &  str_a,
const typename T::value_type *  str_b 
)

True if string is the same as character sequence, ignoring case.

Specialization for Array<char>

For purposes of comparison of dimensions, the character sequence is considered to be a row vector.

◆ strncmp() [1/2]

template<typename T >
OCTAVE_API bool octave::string::strncmp ( const T &  str_a,
const T &  str_b,
const typename T::size_type  n 
)

True if the first N characters are the same.

Specialization for Array<char>

The comparison is done in the first N characters, the actual dimensions of the Array are irrelevant. A row vector and a column vector of the same still return true.

Referenced by almost_match(), Fstrncmp(), octave::textscan::lookahead(), read_binary_file_header(), octave::textscan::scan_complex(), and octave::textscan::skip_whitespace().

◆ strncmp() [2/2]

template<typename T >
OCTAVE_API bool octave::string::strncmp ( const T &  str_a,
const typename T::value_type *  str_b,
const typename T::size_type  n 
)

True if the first N characters are the same.

◆ strncmpi() [1/2]

template<typename T >
OCTAVE_API bool octave::string::strncmpi ( const T &  str_a,
const T &  str_b,
const typename T::size_type  n 
)

True if the first N characters are the same, ignoring case.

Specialization for Array<char>

The comparison is done in the first N characters, the actual dimensions of the Array are irrelevant. A row vector and a column vector of the same still return true.

Referenced by Fstrncmpi(), and get_mapper_fun_options().

◆ strncmpi() [2/2]

template<typename T >
OCTAVE_API bool octave::string::strncmpi ( const T &  str_a,
const typename T::value_type *  str_b,
const typename T::size_type  n 
)

True if the first N characters are the same, ignoring case.

◆ u8_from_encoding()

std::string octave::string::u8_from_encoding ( const std::string &  who,
const std::string &  native_string,
const std::string &  encoding 
)

◆ u8_to_encoding()

std::string octave::string::u8_to_encoding ( const std::string &  who,
const std::string &  u8_string,
const std::string &  encoding 
)

◆ u8_validate()

unsigned int octave::string::u8_validate ( const std::string &  who,
std::string &  in_string,
const u8_fallback_type  type = U8_REPLACEMENT_CHAR 
)