Форум программистов, компьютерный форум CyberForum.ru

вектор string в масив указателей на char - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.92
Arderun
1 / 1 / 0
Регистрация: 12.09.2011
Сообщений: 17
12.09.2011, 19:01     вектор string в масив указателей на char #1
Доброго дня, комрады. Вот несколько дней как начал разбираться в С++ по 4-му вводному курсу липмана. наткнулся на задачку в общем-то тривиальную, но в определенном месте немного вывихнул мозг.
Задание:
Напишите программу читающую строки в вектор. Скопируйте этот вектор в массив указателей на тип 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
28
29
30
31
32
33
34
35
36
37
#include <iostream>  
#include <string> 
#include <vector> 
#include <bitset> 
#include <stddef.h>  
#include <cstring>   
using std::bitset;
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
 
int main()
{ 
    char * himas[10];
    int j,D;
    string V;
    vector<string> liter;
string a ;
for(int i=0; i!=10; ++i)
{cin >> a ;
liter[i].push_back(a);
}
for(int i=0; i!=10; ++i)
{
j=liter[i].size();
V=liter[i];
for(int k=0; k!=j; ++k)               // <-
{**(himas+k)=V[k];                  //  <-
}
}
for(int i=0; i!=10; ++i)
{cout << himas[i] << endl;
}
return 0;
}
не знаю всю ли пунктуацию почистил, но запнулся собсвтенно на записи в указатель на char строки.
Вроде как индексированием на двумерный массив пользоваться не могу так как многомерные массивы собственно следующая глава.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2011, 19:01     вектор string в масив указателей на char
Посмотрите здесь:

Массив из указателей на масив из указателей на массив из int) C++
есть массив char. есть строка string. как присвоить значению string-a значение char-a? C++
Вектор строк и массив указателей на тип char C++
Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) C++
Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,960
15.09.2011, 14:41     вектор string в масив указателей на char #21
ForEveR, в линуксе, видимо? Я так понимаю, что в linux оно есть именно из-за POSIX.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.09.2011, 14:49     вектор string в масив указателей на char #22
grizlik78, Понятно. Спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2011, 17:56     вектор string в масив указателей на char
Еще ссылки по теме:

C++ В чем отличие двумерного массива типа char от массива указателей на char?
C++ Вектор ссылок и вектор указателей
array char* to char* (значения массива указателей в один указатель) C++

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

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
15.09.2011, 17:56     вектор string в масив указателей на char #23
Цитата Сообщение от ForEveR Посмотреть сообщение
Сыроежка, Так вы ж любитель стандарта, но не понимаете что в нем написано? Оригинально.

Вектор создается в функции. Удаляется он после выхода из функции. До тех пор строки корректны. Так же как и указатели на них, если данный объект строки не был изменен в процессе.

Докажите мне обратное, если сможете. Пример кода, пример выполнения кода (показывающий вашу точку зрения), пункт стандарта, в котором это указано. Иначе - лесом.
Вопрос не в том, что именно в вашей функции не произойдет аварийного завершения, а вопрос в том, что всегда надо грамотно писать код, даже в частных примерах демонстрировать правильное использование идиом программирования. Ведь по существу каждый частный пример предназначен для демонстрации общего подхода.
Yandex
Объявления
15.09.2011, 17:56     вектор string в масив указателей на char
Ответ Создать тему
Опции темы

Текущее время: 02:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru