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

Ввод в массив элементы другого массива. - C++

Восстановить пароль Регистрация
 
JiryPK
1 / 1 / 0
Регистрация: 13.11.2010
Сообщений: 17
05.04.2012, 18:11     Ввод в массив элементы другого массива. #1
Здравствуйте, в задаче нужно из текстовой строки удалить пробелы и переписать символы в другой массив vector. Пробелы я нашёл как убрать, а вот скопировать не получается
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
59
60
61
62
// pal.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
class Del
{   
    public:
 
        int i, j;
 
        void del_probel( char str[]) //////// Функция удаляет пробелы из строки
        { 
            int n = strlen( str );
            i = 0;
            for( int j=0; j<n; ++j )
            {
                if( str[j] != ' ' )
                {
                    str[i++] = str[j];
                }
            }
                if( i < n )
                str[i] = '\0';
                cout<<"i = "<<i<<endl;
        }
 
};
 
int main()
{
    Del d;
 
    char *s1 = new char[100];
    char *p=&s1[0];
    vector<char> v;
    int i, z;
 
    cin.getline(s1,99);
    cout<<"s1 = "<<s1<<endl;
    system("pause");
 
    d.del_probel(s1);
    cout<<"vvedite koli4estvo bukv --> ";
    cin>>z;                                               //// Вводим количество символов в строке( равно i)
 
    for(int i=0; i<z; i++);
    {
        v.push_back(*(p));                 ////Здесь должен заполнять массив, но я не могу понять как его реализовать с помощью ссылки.
    }
    cout<<"razmer = "<<v.size()<<endl;
    for(int i=0; i<v.size(); i++)
        cout<<v[i]<<" "<<endl;
 
    system("pause");
    return 0;
}
как реализовать v.push_back, чтобы массив заполнялся всеми символами. Сейчас появляется только 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 18:11     Ввод в массив элементы другого массива.
Посмотрите здесь:

Дан массив. Переписать его второй, четвертый и т.д. элементы в другой массив такого же размера, расположив элементы подряд с начала массива C++
одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ C++
Есть два потока и глобальный массив, могут ли потоки перепутать элементы глобального массива или другого контейнера? C++
C++ Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В.
C++ Массив-ссылка на некоторые элементы другого массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
05.04.2012, 21:47     Ввод в массив элементы другого массива. #2
C++
1
2
3
4
for(int i = 0; i < z; i++)
{
    v.push_back( *(p + i) );
}
JiryPK
1 / 1 / 0
Регистрация: 13.11.2010
Сообщений: 17
05.04.2012, 22:29  [ТС]     Ввод в массив элементы другого массива. #3
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
for(int i = 0; i < z; i++)
{
    v.push_back( *(p + i) );
}
так не получается, компилятор прерывает работу и пишет - The variable 'i' is being used without being initialized
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
05.04.2012, 22:52     Ввод в массив элементы другого массива. #4
Удалите объявление переменной i в 42-ой строке.
JiryPK
1 / 1 / 0
Регистрация: 13.11.2010
Сообщений: 17
05.04.2012, 23:17  [ТС]     Ввод в массив элементы другого массива. #5
Цитата Сообщение от rangerx Посмотреть сообщение
Удалите объявление переменной i в 42-ой строке.
Если убрать, то пишет в 54 строке 'i' undeclared identifier
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
06.04.2012, 14:48     Ввод в массив элементы другого массива. #6
Цитата Сообщение от JiryPK Посмотреть сообщение
Если убрать, то пишет в 54 строке 'i' undeclared identifier
В таком случае уберите объявление переменной i из циклов for(52, 57 строки), а 42 строку оставьте без изменений.
Catstail
Модератор
 Аватар для Catstail
21492 / 10245 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
06.04.2012, 15:07     Ввод в массив элементы другого массива. #7
Чего так сложно-то?

Всего и делов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "string.h"
#include "iostream.h"
 
int main(int argc, char* argv[])
{
 
    char *S = "To be or not  to be";
 
        char V[100];
 
    int i,j;
 
    for (i=0; i <= 99; i++) V[i]=0;
 
    j=0;
        for (i=0; i < strlen(S); i++)
        if (*(S+i) != ' ') V[j++]=*(S+i);
 
    cout << V << endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 18:55     Ввод в массив элементы другого массива.
Еще ссылки по теме:

C++ Получить массив, расположив в его начале элементы массива A, а затем — элементы массива B
C++ Получить третий массив C[15] по правилу: вначале элементы первого массива, затем элементы второго массива
C++ Записать в массив элементы другого массива

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

Или воспользуйтесь поиском по форуму:
JiryPK
1 / 1 / 0
Регистрация: 13.11.2010
Сообщений: 17
06.04.2012, 18:55  [ТС]     Ввод в массив элементы другого массива. #8
Спасибо огромное!
Yandex
Объявления
06.04.2012, 18:55     Ввод в массив элементы другого массива.
Ответ Создать тему
Опции темы

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