powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как распарсить массив char в массив string
6 сообщений из 6, страница 1 из 1
Как распарсить массив char в массив string
    #38402504
Фотография Алкобобёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как преобразовать char в массив string.
С внешнего устройства приходит массив символов, это просто строчки
разделенные пробелом " E2801105200052CE E28011052000510E"

Код: plaintext
1.
char data[1000];


..

[0]: 32 ' '
[1]: 69 'E'
[2]: 50 '2'
[3]: 56 '8'
[4]: 48 '0'
[5]: 49 '1'
[6]: 49 '1'
[7]: 48 '0'
[8]: 53 '5'
[9]: 50 '2'
[10]: 48 '0'
[11]: 48 '0'
[12]: 48 '0'
[13]: 53 '5'
[14]: 50 '2'
[15]: 67 'C'
[16]: 69 'E'
[17]: 32 ' '
[18]: 69 'E'
[19]: 50 '2'
[20]: 56 '8'
[21]: 48 '0'
[22]: 49 '1'
[23]: 49 '1'
[24]: 48 '0'
[25]: 53 '5'
[26]: 50 '2'
[27]: 48 '0'
[28]: 48 '0'
[29]: 48 '0'
[30]: 53 '5'
[31]: 49 '1'
[32]: 48 '0'
[33]: 69 'E'
[34]: -52 'М'
[35]: -52 'М'
[36]: -52 'М'
[37]: -52 'М'
[38]: -52 'М'
[39]: -52 'М'


Нужно распарсить этот массив в string, так чтобы последний элемент стал первым.
И массив выглядел так


Код: plaintext
1.
2.
3.
4.
string arr[1];

a[0]="E28011052000510E";
a[1]="E2801105200052CE";
...
Рейтинг: 0 / 0
Как распарсить массив char в массив string
    #38402566
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алкобобёр,
а в чём проблема то? элементарщина жеж
...
Рейтинг: 0 / 0
Как распарсить массив char в массив string
    #38402598
Фотография Алкобобёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно что фигня, только я С++ не знаю. Нужно немного подправить один проект и все.
...
Рейтинг: 0 / 0
Как распарсить массив char в массив string
    #38403028
sherzod_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алкобобёр,

Из двух элементов еще не ясно по какому алгоритму "последний элемент должен стать первым". Этом может быть например поворот, или отражение. Если нужно отражение замените std::rotate на std::reverse.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#include <string>
#include <sstream>
#include <iterator>
#include <vector>
#include <algorithm>

#include <iostream>
...
	const char * buf = "hello hi yay yow";
	std::stringstream in(buf);
	std::vector<std::string> arr;
	std::copy(std::istream_iterator<std::string>(in), std::istream_iterator<std::string>(), std::back_inserter(arr));
	if (!arr.empty())
		std::rotate(arr.begin(), arr.end()-1, arr.end());

	std::copy(arr.begin(), arr.end(), std::ostream_iterator<std::string>(std::cout, ", "));
	std::cout << std::endl;
...
Рейтинг: 0 / 0
Как распарсить массив char в массив string
    #38403050
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как преобразовать char в массив string.
С внешнего устройства приходит массив символов, это просто строчки
разделенные пробелом " E2801105200052CE E28011052000510E"

Код: plaintext
1.
2.
3.
char data[1000];

std::string s( data, 1000 );
...
Рейтинг: 0 / 0
Как распарсить массив char в массив string
    #38403480
Ещё можно добавить:
sherzod_
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <string>
#include <sstream>
#include <iterator>
#include <vector>
#include <algorithm>

#include <iostream>
...
	const char * buf = "hello hi yay yow";
	std::stringstream in(buf);
	std::vector<std::string> arr;
	arr.reserve( 1 + std::count(buf, buf + strlen(buf), ' ') );
	std::copy(std::istream_iterator<std::string>(in), std::istream_iterator<std::string>(), std::back_inserter(arr));
	if (!arr.empty())
		std::rotate(arr.begin(), arr.end()-1, arr.end());

	std::copy(arr.begin(), arr.end(), std::ostream_iterator<std::string>(std::cout, ", "));
	std::cout << std::endl;



Хотя основные затраты будут на выделение памяти в каждой std::string для длинных слов. А никто не помнит, до какого размера std::string хранит строку в своей локальной памяти, вместо выделения в куче?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как распарсить массив char в массив string
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]