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

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

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

Author24 — интернет-сервис помощи студентам
Есть некая строка
C++
1
2
3
string stroka=
"Hello|world\n
Im|alive"
Как можно её спарсить, чтоб массив string выглядел приблизительно таким образом?
Код
pc[0][0] - Hello
pc[0][1] - world
pc[1][0] - Im
pc[1][1] - alive
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2015, 18:39
Ответы с готовыми решениями:

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

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

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

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

14
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
28.09.2015, 18:49 2
Дальше сами.
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  [ТС] 3
Насколько я разобрался, код выводит на экран, а мне нужно в итоге получить именно двухмерный массив.
Я не понимаю, как правильно расписать сие дело
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
28.09.2015, 21:42 4
А вывод в двумерный массив вам в качестве самостоятельного задания.
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
30.09.2015, 15:13  [ТС] 5
Renji, в любом случаи, этот код не работает даже, если оставить всё, как есть
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
11.10.2015, 23:06  [ТС] 6
Пришлось бить вручную по-символьно.
Тема закрыта!
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
11.10.2015, 23:18 7
Цитата Сообщение от Newbie_cry Посмотреть сообщение
Пришлось бить вручную по-символьно.
Тема закрыта!
Хорошо хоть не по-битно забил...
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
11.10.2015, 23:34  [ТС] 8
castaway, другой мысли в голову не пришло
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
12.10.2015, 07:04 9
Цитата Сообщение от 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  [ТС] 10
Структура стрингов - наш выход
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
13.10.2015, 06:50 11
Цитата Сообщение от 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
daslex
13.10.2015, 10:37
  #12

Не по теме:

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

0
sourcerer
13.10.2015, 10:39
  #13

Не по теме:

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

0
Newbie_cry
13.10.2015, 20:04  [ТС]
  #14

Не по теме:

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

0
castaway
13.10.2015, 20:21     Разбить многострочный стринг на двумерный массив char
  #15

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2015, 20:21

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

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

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

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

Указатель на двумерный массив char С.Прата
Здравствуйте!Если не трудно, объясните в чем ошибка?Через string удалось решить без проблем, а вот...

Динамический двумерный массив char через new?
В общем, нужно создать n-ое количество двухсимвольных строк char. Как правильно выделить память под...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru