toCharArry нюансы работы.
- Войдите на сайт для отправки комментариев
Нигде нет инфы, что в точности происходит, если скажем я указываю длину массива для .toCharArry в десять символов, а переменная String содержит скажем сто символов. Поэтому вопрос, - как в точности, происходит данное преобразование? Берется каждый следующий символ, и помещается в масив, в ячейку +1, n раз, где n - указанный размер массива?
И если не влом, - как наиболее простым способом, разбить переменную класса String заданной, четко известной длинны(ну пусть 17 символов), на скажем три последовательно заполненных массива типа char длинной 12,2,3?
Нагляднее:
String Ы="XXXXXXXXXXXXYYZZZ" <-- получаем на входе.
Char ПервыйМасив[12] <-- Должен получить из стринга все X
Char ВторойМасив[2] <-- Все Y
Char ТретийМасив[3] <-- Все Z
И предвосхищая вопросы, полная задача,--получить на выходе масив переменных Int спарсенных из полученной String.
Кто или что мешает открыть текст toCharArray и псомотреть? Там кода меньше, чем Вы тут текста написали. Вот он
void toCharArray(char *buf, unsigned int bufsize, unsigned int index = 0) const { getBytes((unsigned char *)buf, bufsize, index); }А вот текст getBytes
void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const { if (!bufsize || !buf) return; if (index >= len) { buf[0] = 0; return; } unsigned int n = bufsize - 1; if (n > len - index) n = len - index; strncpy((char *)buf, buffer + index, n); buf[n] = 0; }Вот и всё. Ни хрена там больше нет. Изучайте.
----------------
Другое дело, зачем Вам копировать в массив? Память девать некуда? Почему не воспользоваться массивом, который уже хранится в строке прямо на месте?