0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90

Разбить многострочный стринг на двумерный массив char

28.09.2015, 18:39. Показов 2494. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть некая строка
C++
1
2
3
string stroka=
"Hello|world\n
Im|alive"
Как можно её спарсить, чтоб массив string выглядел приблизительно таким образом?
Code
1
2
3
4
pc[0][0] - Hello
pc[0][1] - world
pc[1][0] - Im
pc[1][1] - alive
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2015, 18:39
Ответы с готовыми решениями:

Из массива стринг в двумерный массив стринг
У меня есть массив строк, в каждой строки записаны слова через пробел. Мне нужно из этого массива получить двухмерный массив stringarray;...

стринг гирд и двумерный массив
Уважаемые форумчане, прошу совета : у меня есть матрица в виде Stringgird1 как мне получить Stringgird2 в котором будут в каждой...

Разбить массив char на химические элементы
Суть моего задания заключается в том что мне нужно введенные данные например(MnSO4) разбить на элементы, в данном случае должно получиться...

14
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.09.2015, 18:49
Дальше сами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string::const_iterator begin=stroka.begin();
for(string::const_iterator pos=begin;;++pos)
{
    if(*pos=='\n'||pos==stroka.end())
    {
        char*new_str=new char[pos-begin+1];
        copy(begin,pos,new_str);
        new_str[pos-begin]=0;
        cout<<new_str<<endl;
        delete[]new_str;
        begin=pos+1;
    }
    if(pos==stroka.end())
        break;
}
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
28.09.2015, 21:41  [ТС]
Насколько я разобрался, код выводит на экран, а мне нужно в итоге получить именно двухмерный массив.
Я не понимаю, как правильно расписать сие дело
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.09.2015, 21:42
А вывод в двумерный массив вам в качестве самостоятельного задания.
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
30.09.2015, 15:13  [ТС]
Renji, в любом случаи, этот код не работает даже, если оставить всё, как есть
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
11.10.2015, 23:06  [ТС]
Пришлось бить вручную по-символьно.
Тема закрыта!
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
11.10.2015, 23:18
Цитата Сообщение от Newbie_cry Посмотреть сообщение
Пришлось бить вручную по-символьно.
Тема закрыта!
Хорошо хоть не по-битно забил...
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
11.10.2015, 23:34  [ТС]
castaway, другой мысли в голову не пришло
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5287 / 2375 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
12.10.2015, 07:04
Цитата Сообщение от Newbie_cry Посмотреть сообщение
Как можно её спарсить, чтоб массив string выглядел приблизительно таким образом?
Никак. Чар - это один симол. Нельзя в переменную char положить слово (несколько символов). Можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
pc[0][0] = 'H'
pc[0][1] = 'e'
pc[0][2] = 'l'
pc[0][3] = 'l'
pc[0][4] = 'o'
pc[0][5] = '\n'
 
pc[1][0] = 'W'
pc[1][1] = 'o'
pc[1][2] = 'r'
pc[1][3] = 'l'
pc[1][4] = 'd'
pc[1][5] = '\n'
 
pc[2][0] = 'I'
pc[2][1] = ' '
pc[2][2] = 'a'
pc[2][3] = 'm'
pc[2][4] = ' '
pc[2][5] = '\n'
 
pc[3][0] = 'a'
pc[3][1] = 'l'
pc[3][2] = 'i'
pc[3][3] = 'v'
pc[3][4] = 'e'
pc[3][5] = '!'
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
12.10.2015, 14:14  [ТС]
Структура стрингов - наш выход
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5287 / 2375 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.10.2015, 06:50
Цитата Сообщение от Newbie_cry Посмотреть сообщение
Структура стрингов - наш выход
Массив стрингов тоже сойдёт:
C++
1
std::string str[4] = {"Hello\n", "World\n", "I Am  \n", "Alive!"};
Доступ к отделному слову будет осуществляться в нотации одномерных массивов:
C++
1
std::cout << str[3];
на экран выведет Alive!

А доступ к отдельному символу такого массива можно как раз-таки осуществлять в нотации двумерного массива. Например, для доступа к букве v в слове Alive можно будет писать так:
C++
1
str[3][3] = 'c';
0
13.10.2015, 10:37

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Никак.
вообще-то можно, конечно, не так как непосредственно вначале написано. Просто это - нудятина.
Это трехмерный массив. ТС имел ввиду трехмерный массив, сам того не понимая. Он описал то, что ему надо, настолько насколько смог, вот и всё.

0
13.10.2015, 10:39

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Это трехмерный массив. ТС имел ввиду трехмерный массив, сам того не понимая. Он описал то, что ему надо, настолько насколько смог, вот и всё.
Ну так-то да, можно обычные сишные строки и трёхмерный массив сделать.

0
13.10.2015, 20:04  [ТС]

Не по теме:

Ну так-то да, можно обычные сишные строки и трёхмерный массив сделать.
Где Вы раньше были такие умные, когда я это всё писал...?

0
13.10.2015, 20:21

Не по теме:

Цитата Сообщение от Newbie_cry Посмотреть сообщение
Где Вы раньше были такие умные, когда я это всё писал...?
Я тут был. Неподалёку.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2015, 20:21
Помогаю со студенческими работами здесь

Разбить одномерный массив из 12 элементов на три строки и 4 столбца (сформировать двумерный массив).
Пожалуйста, помогите решить эту задачу!

Двумерный массив char
Как создать двумерный массив char?

Разбить строку на литералы и записать их в двумерный массив
Правильно выводит только первый литерал. Все остальные - пустые строки,похоже, поскольку ничего не выводит. Подскажите,с чем связано? ...

Не заполняется двумерный массив char
Не заполняется массив char числами. Проблема более хороша на скриншотах (обратите внимание на значение arr) P.S. Если что, я хочу этим...

Hex коды символов из char* в стринг
Добрый день. Голову себе сломал, гуглил. Все без толку. Есть массив символов (char*). Мне нужно получить строку std::string отображающую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
Как некоторые отстают в навыках поиска информации в сети. Дублирование страницы открытого адреса в сети.
Hrethgir 17.05.2025
. . . берём бразуер, для многих он является инструментом поиска информации в сети. Понятное дело, что чтобы переходить по сслыкам есть такая фишка - "открыть в новой вкладке", но, представим себе что вы. . .
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru