View Categories

String

String - динамическая строка

Конструктор #

Строки и символы #

String(const char *cstr = "")
String(const String &str)
String(const __FlashStringHelper *str)
String(char c)
Создаёт String и копирует в неё строку

String s1("string");
String s2(s1);
String s3(F("fstring"));
String s4('a');

Целые числа #

String(unsigned char, unsigned char base = 10)
String(int, unsigned char base = 10)
String(unsigned int, unsigned char base = 10)
String(long, unsigned char base = 10)
String(unsigned long, unsigned char base = 10)
Создаёт String с числом по указанному основанию

String s1(12345);       // == "12345"
String s2(12345, DEC);  // == "12345"
String s3(12345, BIN);  // == "11000000111001"
String s3(12345, HEX);  // == "3039"

С плавающей точкой #

String(float, unsigned char decimal = 2)
String(double, unsigned char decimal = 2)
Создаёт String с числом с плавающей точкой с указанной точностью

String s1(3.1415);      // == 3.14
String s2(3.1415, 1);   // == 3.1
String s3(3.1415, 4);   // == 3.1415

Система #

reserve #

bool reserve(unsigned int size)
Зарезервировать память для строки, вернёт true при успехе. Прибавление нового текста к строке в зарезервированное место происходит быстрее

length #

unsigned int length()
Вернёт длину строки в количестве символов

String s("1234");
s.length();     // == 4

charAt #

char charAt(unsigned int index)
Вернёт символ под индексом index:

String s("abc123");
s.charAt(1);    // == 'b'

getBytes, toCharArray #

void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index = 0)
void toCharArray(char *buf, unsigned int bufsize, unsigned int index = 0)
Скопировать строку в буфер buf размера bufsize, начиная с индекса index:

char buf[5];
String s("abcdef");
s.toCharArray(buf, 5, 2);
// buf == "cdef"

c_str, begin #

const char* c_str()
const char* begin()
Вернёт указатель на начало строки

end #

const char* end()
Вернёт указатель на конец строки

String s;
s.concat(123);      // == "123"
s.concat("test");   // == "123test"

Сравнение #

compareTo #

int compareTo(const String &s)
Вернёт 0, если строки равны, аналог strcmp

equals #

bool equals(const String &s)
bool equals(const char *cstr)
Вернёт true, если строки равны

String s1 = "abc";
s1.equals("abc");   // true

equalsIgnoreCase #

bool equalsIgnoreCase(const String &s)
Вернёт true, если строки равны без учёта регистра символов

String s1 = "abc";
s1.equalsIgnoreCase("ABC"); // true

startsWith #

bool startsWith(const String &prefix)
bool startsWith(const String &prefix, unsigned int offset)
Вернёт true, если строка начинается со строки prefix. Можно сравнивать, начиная с символа под номером offset:

String s("abc123");
s.startsWith("ab");     // true
s.startsWith("12", 3);  // true

endsWith #

bool endsWith(const String &suffix)
Вернёт true, если строка заканчивается строкой suffix:

String s("abc123");
s.endsWith("23");       // true

Поиск #

indexOf #

int indexOf(char ch)
int indexOf(char ch, unsigned int fromIndex)
int indexOf(const String &str)
int indexOf(const String &str, unsigned int fromIndex)
Вернёт позицию символа или подстроки в строке, поиск с начала строки. Вернёт -1, если символ или подстрока не найдены:

String s("abcd");
s.indexOf('b');     // 1
s.indexOf('1');     // -1
s.indexOf("cd");    // 2
s.indexOf("12");    // -1

lastIndexOf #

int lastIndexOf(char ch)
int lastIndexOf(char ch, unsigned int fromIndex)
int lastIndexOf(const String &str)
int lastIndexOf(const String &str, unsigned int fromIndex)
Вернёт позицию символа или подстроки в строке, поиск с конца строки. Вернёт -1, если символ или подстрока не найдены:

String s("abcdacd");
s.lastIndexOf('a');     // 4
s.lastIndexOf("cd");    // 5

Изменение #

setCharAt #

void setCharAt(unsigned int index, char c)
Установить символ под индексом index в значение c:

String s("abc");
s.setCharAt(1, '3');
// s == "a3c"

concat #

bool concat(const String &str)
bool concat(const char *cstr)
bool concat(char c)
bool concat(unsigned char c)
bool concat(int num)
bool concat(unsigned int num)
bool concat(long num)
bool concat(unsigned long num)
bool concat(float num)
bool concat(double num)
bool concat(const __FlashStringHelper * str)
Прибавить к строке

replace #

void replace(char find, char replace)
void replace(const String& find, const String& replace)
Заменить все символы или подстроки find на символ или строку replace:

String s("abc123abc");
s.replace("abc", "ABC");
// s == "ABC123ABC"

remove #

void remove(unsigned int index)
void remove(unsigned int index, unsigned int count)
Удалить часть строки с индекса index до конца или в количестве count:

String s("abc123abc");
s.remove(3, 3);
// s == "abcabc"

trim #

void trim()
Удалить с начала и конца строки пробельные символы (isspace()): пробел, \f, \n, \r, \t, \v:

String s = " abc\r\n";
s.trim();
// s == "abc"

toLowerCase #

void toLowerCase()
Преобразовать все символы в нижний регистр

toUpperCase #

void toUpperCase()
Преобразовать все символы в верхний регистр

Экспорт #

substring #

String substring(unsigned int beginIndex)
String substring(unsigned int beginIndex, unsigned int endIndex)
Обрезать строку с индекса beginIndex до конца или endIndex (не включая). Вернёт новую строку:

String s("abc123def");
String sub = s.substring(3, 6);
// sub == "123"

toInt #

void toInt()
Конвертировать строку в целое число. Пропускает пробельные символы в начале строки, останавливается при достижении отличного от числа символа. Вернёт 0, если строка не содержит число:

String s = " 123a";
s.toInt();  // == 123

toFloat, toDouble #

void toFloat()
void toDouble()
Конвертировать строку в число с плавающей точкой. Пропускает пробельные символы в начале строки, останавливается при достижении отличного от числа символа. Вернёт 0, если строка не содержит число:

String s = " 123.456a";
s.toFloat();    // == 123.456

Операторы #

Доступ #

char& operator [] (unsigned int index)
Доступ к символу по индексу для чтения и записи:

String s("abc");
s[0];   // == 'a'
s[1] = '5';
// s == "a5c"

Присвоение #

String & operator = (const String &rhs)
String & operator = (const char *cstr)
String & operator = (const __FlashStringHelper *str)
Присвоить к строке другую строку в любом формате

String s;
s = "abc";      // s == "abc"
s = F("def");   // s == "def"

Прибавление #

String & operator += (const String &rhs)
String & operator += (const char *cstr)
String & operator += (char c)
String & operator += (unsigned char num)
String & operator += (int num)
String & operator += (unsigned int num)
String & operator += (long num)
String & operator += (unsigned long num)
String & operator += (float num)
String & operator += (double num)
String & operator += (const __FlashStringHelper *str)
Прибавить к строке

String s;
s += "abc";     // s == "abc"
s += F("def");  // s == "abcdef"

Сравнение #

bool operator == (const String &rhs)
bool operator == (const char *cstr)
bool operator != (const String &rhs)
bool operator != (const char *cstr)
bool operator < (const String &rhs)
bool operator > (const String &rhs)
bool operator <= (const String &rhs)
bool operator >= (const String &rhs)
Сравнить строки

String s("abc");
s == "abc"; // true
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх