Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ElanGlaed
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
#1

Динамический массив - C++

19.11.2013, 14:09. Просмотров 476. Ответов 8
Метки нет (Все метки)

Задание: "Написать программу выводящую каждый четный(нечетный) элемент массива" пояснение: пользователь вводит слово с клавиатуры, программа выводит на экран каждую вторую букву ( начиная с первой или второй без разницы).
Помогите пожалуйста разобраться, каким образом слово вводимое пользователем записать посимвольно в массив?
я пробовал сделать вот так, но это не через динамический массив и все равно не работает ...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <"iostream">
using namespace std;
int main()
{
    cout<<"Enter string: "<<endl;
    string str;
    cin >> str;
    char charmass[str.length()];
    int strln=str.length();
    for (int i=0;i<strln;i++)
    {
        if ((i%2)==0)
        {
            cout << charmass [i];
        }
    }
    system("pause");
    return 0;
 
}

http://www.cyberforum.ru/cpp-beginners/thread2258072.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 14:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамический массив (C++):

Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Динамические массивы привлекают больше. :)

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой...

Написать функцию принимающую массив и возвращающую указатель на динамический массив
Написать функцию принимающую массив и возвращающую указатель на динамический...

Динамический массив: целое число разложить на массив простых множителей
Доброго времени суток всем. Целое число необходимо разложить на массив простых...

Заполнить динамический массив из файла и записать массив обратно в файл
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из...

8
egor2116
571 / 375 / 215
Регистрация: 20.01.2013
Сообщений: 1,135
19.11.2013, 14:21 #2
Наверное как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
 
int main(int argc, char *argv[])
{
   std::string str;
   std::cout << "Input string: "; getline(cin,str); std::cout << std::endl;
 
   for(int i=0; i<=str.size(); ++i)
       if(str[i]%2 == 0)
           std::cout << str[i] << " ";
           std::cout << std::endl;       
    
    system("PAUSE");
    return 0;
}
1
ElanGlaed
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
19.11.2013, 14:31  [ТС] #3
getline не определен, + если прописано using namespace std; зачем каждый раз приписывать std:: ?
0
egor2116
571 / 375 / 215
Регистрация: 20.01.2013
Сообщений: 1,135
19.11.2013, 14:57 #4
если прописано using namespace std; зачем каждый раз приписывать std::
Вы правы уберите, и замените
C++
1
getline(cin,str);
на
C++
1
std::getline(std::cin,str);
0
Vermilionka
5 / 2 / 1
Регистрация: 18.07.2012
Сообщений: 54
19.11.2013, 15:09 #5
Я конечно, немного не в тему, но четный или нечетный элемент можно определить еще в цикле

C++
1
2
3
4
5
6
7
8
9
10
  for(int i=1; i<=str.size(); i=i+2) //нечет
       std::cout << str[i] << " ";
       std::cout << std::endl;    
      
        ...
 
for(int i=0; i<=str.size(); i=i+2) //чет
        std::cout << str[i] << " ";
       std::cout << std::endl;
       ...
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
19.11.2013, 15:41 #6
Цитата Сообщение от egor2116 Посмотреть сообщение
for(int i=0; i<=str.size(); ++i)
Цитата Сообщение от Vermilionka Посмотреть сообщение
for(int i=1; i<=str.size(); i=i+2)
Нижняя граница массива(в данном случае строки) - 0, верхняя - str.size()-1, следовательно для доступа к его i-му элементу должно выполнятся условие 0 <= i < str.size(), все остальное выход за пределы массивы.
0
ElanGlaed
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 4
19.11.2013, 16:33  [ТС] #7
спасибо всем конечно, но на мой вопрос никто так и не ответил, с помощью чего, записать в массив по символьно слово введенное с клавиатуры?
0
Max Dark
шКодер самоучка
1890 / 1690 / 834
Регистрация: 09.10.2013
Сообщений: 3,746
Записей в блоге: 6
Завершенные тесты: 2
19.11.2013, 17:43 #8
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
#include <iostream>
#include <vector>
#include <cctype>
 
int main() {
    std::vector<char> chars;
    bool ignore = true;
    
    // вводим символы игнорируя начальные,
    // не являющиеся буквами
    while(std::cin.good()) {
        char c=std::cin.get();
        if(isalpha(c)) {         // нашли символ букву
            ignore = false;    // перестаем игнорировать остальные
            chars.push_back(c);// добавляем букву в массив
        }
        else if(ignore == false) // если символ не буква
                         // и была найдена хотябы одна буква
            break;       // то выходим из цикла ввода
    }
    std::cin.sync();
    
    // посимвольный вывод - по одной букве на строке
    for(char ch : chars) {
        std::cout<< ch <<std::endl;
    }
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
~/src/tests
max@notebook:$ g++ --std=c++11 cba.cpp
~/src/tests
max@notebook:$ ./a.out
21334<<< qwerty>>>
q
w
e
r
t
y
0
Liden
19 / 19 / 3
Регистрация: 19.11.2013
Сообщений: 83
19.11.2013, 17:57 #9
Цитата Сообщение от ElanGlaed Посмотреть сообщение
спасибо всем конечно, но на мой вопрос никто так и не ответил, с помощью чего, записать в массив по символьно слово введенное с клавиатуры?
1 вариант: Используй тип char c массивом, например так:
char ch[size]; //size - размер
cin>>ch;
cout<<ch[n]; // n - элемент будет на экране
То есть:
вводим: привет
n=1
на экране: р

2 вариант: Используй указатель, напрмиер так:
char *ch;
cin>>ch;
cout<<ch[n]; // можно по-другому: cout<<*(ch+n);
0
19.11.2013, 17:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 17:57
Привет! Вот еще темы с решениями:

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла
задача: передать динамический массив в функцию, и записать в каждый элемент...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005:...

Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента)
Создать динамический массив из 8 случайных целых чисел из отрезка и вывести...

Массив и память. Как создать динамический массив?
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для...


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

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

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