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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

Посчитать количество строковый символов в векторе - C++

23.09.2012, 20:25. Просмотров 804. Ответов 4
Метки нет (Все метки)

Добрый день. В нижеприведённом коде есть задание. У меня не получается организовать подсчёт символов в векторе для дальнейшего объявления массива (хотелось бы сделать это двумя способами: при помощи индексирования и итератора). Так же мне не понятен смысл пред-прдепоследнего предложения в задании.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
// Напишите программу, читающую строки в вектор. Скопируйте
// этот вектор в массив указателей на тип char. Для каждого
// элемента в вектора создайте новый символьный массив и
// скопируйте данные из элемента вектора в этот символьный
// массив. Затем поместите указатель на смвольный массив в
// массив символьных указателей. Отобразите содержимое вектора
// и созданного массива. Не забудте удалить символьные массивы.
 
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
#include <cstddef> // for size_t type
using namespace std;
 
int main(void)
{
  string line_one;
  vector<string> vect_one;
  for( ; getline(cin, line_one); ) {
    vect_one.push_back(line_one);
  }
 
  const  size_t max_size = vect_one.size() + 1;
  string *string_arr = new string [max_size + 1];
  vector<string>::const_iterator vect_iter = vect_one.begin();
 
  for(string *pLine = string_arr; 
      pLine != string_arr + max_size
    && vect_iter != vect_one.end(); ++pLine,
    ++vect_iter) {
    *pLine = *vect_iter;
    cout << *pLine;
  }
  cout << endl;
 
  // не пойму как дальше правильно организовать код:
  size_t elem_vect = 0;
  for(size_t vIter = 0; vIter != vect_one.size(); ++vIter)
    for(size_t sIter = 0; sIter != line_one.size(); ++sIter)    
      ++elem_vect;
  
  cout << endl << "Vector have " << elem_vect << " char(s)"
       << endl;
 
  delete [] string_arr;
 
 
  return 0;    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 20:25     Посчитать количество строковый символов в векторе
Посмотрите здесь:

Вводится последовательность символов. Признак конца ввода – точка. Посчитать количество символов не являющихся пробелами - C++
Порядок выполнения работы 1.Изучите теоретическое обоснование и проанализируйте приведенные выше примеры программ с циклами типа for,...

Посчитать количество символов - C++
1)Вводится строка, посчитать кол-во цифр и букв, и вывести эти подсчеты. 2)Вводятся несколько строк, посчитать также кол-во букв и цифр и...

Посчитать количество символов в файле - C++
Всем привет, нужно в программе подсчитать кол-во символов в файле, дальше через это кол-во символов я буду выделять память для строки. ...

Посчитать количество символов в слове - C++
Дано название футбольной команды. Подсчитайте, сколько в нем символов.

Посчитать количество символов в строке - C++
Хелп. Я только недавно начал изучать С++. Помогите сделать программу. Нужно посчитать количество всех элементов в строке.

Посчитать количество символов в файле - C++
Нужно посчитать количество символов в файле: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
23.09.2012, 21:18     Посчитать количество строковый символов в векторе #2
Цитата Сообщение от xtorne21st Посмотреть сообщение
// не пойму как дальше правильно организовать код:
А это смотря что вы там собрались делать.
Замечу лишь что в задании просят сделать символьный массив, а вы делаете непойми что с типом string так как вы создаёте массив указателей на string и копируете адреса, а не содержимое.
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
23.09.2012, 21:49  [ТС]     Посчитать количество строковый символов в векторе #3
я собрался там посчетать количество символов в типе vector<string> для дальнейшего обявления динамического или статического массива.

Добавлено через 27 минут
Цитата Сообщение от Gepar Посмотреть сообщение
массив указателей
Разьясните пожалейста, динамический массив и массив указателей это одно и тоже?
vitaska
84 / 84 / 2
Регистрация: 04.02.2010
Сообщений: 162
24.09.2012, 09:15     Посчитать количество строковый символов в векторе #4
Цитата Сообщение от xtorne21st Посмотреть сообщение

Разьясните пожалейста, динамический массив и массив указателей это одно и тоже?
В динамическом массиве просто заранее неизвестен размер массива и хранится там будут те данные, какого он типа, а в массиве указателей будут хранится только адреса переменных!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2012, 16:35     Посчитать количество строковый символов в векторе
Еще ссылки по теме:

Посчитать количество символов в строке - C++
Задание: Дана строка. Подсчитать количество различных символов, которые не являются буквами или цифрами, и вывести их на экран. Знаю...

Посчитать количество символов в файле - C++
У меня есть текстовый файл, мне надо вывести его на консоль и посчитать количество символов в тексте. Вывод на консоль - не проблема....

Посчитать количество символов не считая пробела - C++
3) Ввести строку и посчитать количество символов не считая пробела (посредством цикла for).

Посчитать количество символов подаваемых на вход - C++
Есть некоторый файл INPUT. Необходимо посчитать количество символов хранящихся в нем. Какие есть способы реализации?

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

посчитать количество символов в текстовом файле - C++
Как посчитать количество символов в текстовом файле?


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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
24.09.2012, 16:35  [ТС]     Посчитать количество строковый символов в векторе #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
string *string_arr = new string [max_size + 1];
В таком случаи что означает эта стока?

Добавлено через 7 минут
Как посчитать количество символов в векторе я разобрался. Но мне не сильно понятно чем отличатеся второе от третьего предложения в задании. А смысл этой фразы: "Затем поместите указатель на смвольный массив в массив символьных указателей." вообще для меня просто загадка. Разьясните, пожалуйста.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Напишите программу, читающую строки в вектор. Скопируйте
// этот вектор в массив указателей на тип char. Для каждого
// элемента в вектора создайте новый символьный массив и
// скопируйте данные из элемента вектора в этот символьный
// массив. Затем поместите указатель на смвольный массив в
// массив символьных указателей. Отобразите содержимое вектора
// и созданного массива. Не забудте удалить символьные массивы.
 
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <cstddef> // for size_t type
 
using namespace std;
 
int main(void)
{
  string c_line;
  vector<string> c_vect;
 
  cout << "Please enter some line: \n";
 
  while(getline(cin, c_line))
    c_vect.push_back(c_line);
 
  // Подсчитаем количество символов в векторе
  size_t count_chars = 0;
  for( vector<string>::size_type vi = 0;
       vi != c_vect.size(); ++vi ) {
    c_line = c_vect[vi];
    for( string::size_type si = 0; si != c_line.size();
     ++si ) { 
      ++count_chars;
    }
  }
  cout << endl;
 
  // создадим массив указателей на тип char
  char *char_arr = new char [count_chars + 1];
  char *cpnt = char_arr;
 
  // скопируем элементы вектора в массив и отобразим результат
  for( vector<string>::const_iterator viter = c_vect.begin();
       viter != c_vect.end(); ++ viter ) {
    c_line = *viter;
    for( string::const_iterator siter = c_line.begin();
     siter != c_line.end(); ++siter, ++cpnt ) {
      *cpnt = *siter;
      cout << *cpnt;
    }
  }
  cout << endl;
 
  delete [] char_arr;
 
  return 0;
}
Yandex
Объявления
24.09.2012, 16:35     Посчитать количество строковый символов в векторе
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru