GNU Octave  6.2.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 >
bool strcmp (const T &str_a, const T &str_b)
 True if strings are the same. More...
 
template<typename T >
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 >
bool strcmpi (const T &str_a, const T &str_b)
 True if strings are the same, ignoring case. More...
 
template<typename T >
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 >
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 >
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 >
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 >
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 141 of file oct-string.h.

Function Documentation

◆ str2double()

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

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

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

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

◆ strcmp() [1/2]

template<typename T >
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.

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

References numel(), and sizes_cmp().

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

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

References numel(), and sizes_cmp().

◆ strcmpi() [1/2]

template<typename T >
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.

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

References numel(), and sizes_cmp().

Referenced by Fchol(), Feig(), QtHandles::Utils::fromHVAlign(), and strcmpi_ignore_n().

◆ strcmpi() [2/2]

template<typename T >
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.

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

References numel(), and sizes_cmp().

◆ strncmp() [1/2]

template<typename T >
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.

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

References max(), min(), n, and numel().

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

◆ strncmp() [2/2]

template<typename T >
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.

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

References max(), min(), n, and numel().

◆ strncmpi() [1/2]

template<typename T >
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.

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

References max(), min(), n, and numel().

Referenced by Fstrncmpi(), and get_mapper_fun_options().

◆ strncmpi() [2/2]

template<typename T >
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.

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

References max(), min(), n, and numel().

◆ 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 
)