Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
eremeevskij
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 20
#1

Выделить из строки числа (только целые) и поместить их в массив по возрастанию - C++

29.05.2015, 22:47. Просмотров 581. Ответов 2
Метки нет (Все метки)

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <string.h>
 
using namespace std;
 
void find_integers_in_string(char* strok, char* arry, int& n) // функция по отбору целых чисел из строки
{
    int s = strlen(strok);
    
    for (int i = 0; i <= s; i++)
    {   
        // ищем числа через таблицу ASCII   
        if (int(strok[i]) > 47 && int(strok[i]) < 58) 
        {
            arry[n] = strok[i]; 
        }
        else
        {
            continue;
        }
        
        n++;
    }
    
}
 
void print_array(char* arry, int k) // функция вывода массива из получившихся целых чисел на экран
{   
    for (int i = 0; i < k; i++)
    {
        cout << arry[i] << " ";
    }
    
}
 
void sort_array(char* arry, int k) // сортируем массив чисел 
{   
    bool truth;
    char element = 0;
    
    do 
    {
        truth = true;
        
        for (int i = 0; i < k - 1; i++)
        {   
            if (arry[i] > arry[i + 1])
            {
                element = arry[i];
                arry[i] = arry[i + 1];
                arry[i + 1] = element;
                
                truth = false;
            }
            
            else
            {
                continue;
            } 
            
        }
        
    } while (truth == false);
    
}
 
int main() {
    
    // создаем строку
    char stroka[64]; // длинна строки выбрана абсолютно случайно, на месте этого числа могло было быть любое другое
    cin.getline(stroka, 64); 
    
    // создаем массив, хранящий целые числа, найденные в массиве строки 
    char array[10];
    int n = 0;
    
    // выполняем функцию поиска целых чисел, и печатаем получившийся массив(целых чисел)
    find_integers_in_string(stroka, array, n);
    print_array(array, n);
    cout << endl;
    
    // сортируем массив целых чисел
    sort_array(array, n);
    
    // снова печатаем массив целых чисел 
    cout << endl;
    print_array(array, n);
        
    return 0;
}
Программа выделяет из случайной строки (введенной пользователем) числа (только целые) и помещает их в массив по возрастанию

единственно, что здесь нужно, это массив "stroka" переписать на динамический массив, и связанную по необходимости часть кода с ней. Но нужно, чтобы размер массива не был инициализирован изначально, преподавателю не понравилось, что в размере массива какое-то число 64, которое взялось непонятно откуда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2015, 22:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выделить из строки числа (только целые) и поместить их в массив по возрастанию (C++):

Одномерный динамический массив (удалить все вещественные числа, оставив только целые) - C++
Здравствуйте!Помогите,пожалуйста,надо из динамического массива удалить все вещественные числа, оставив только целые, полу-ченный массив...

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

Выделить из строки числа и записать в массив - C++
Доброго времени суток! Задача такова: есть строка неопределённого размера (&gt;10000 знаков), состоит эта строка из латиницы, и чисел. Числа...

Сформировать массив из п элементов (n <50), которыми могут быть только целые числа 0 и 1. Проверить, существует строгое чередование 0 и 1. - C++
Помогите написать прогу. Сформировать массив из п элементов (n &lt;50), которыми могут быть только целые числа 0 и 1. Проверить,...

Выделить из текста целые числа - C++
Допустим у нас есть файл с числами в середине различного типа, таких как int, float, double. Как узнать количество чисел например типа int?

Дан одномерный массив, элементы которого - целые числа. Удалите из него все повторяющиеся элементы, оставив только их первые вхождения. - C++
Добрый день!!! Не могли бы помочь отредактировать программу на с++? Дан одномерный массив, элементы которого - целые числа. Удалите из него...

2
Solitaire Raven
33 / 33 / 10
Регистрация: 20.04.2015
Сообщений: 198
30.05.2015, 10:00 #2
Цитата Сообщение от eremeevskij Посмотреть сообщение
char stroka[64]
Вот так пойдет?

C++
1
2
3
4
5
6
7
   cin>>M;
   cin>>N;
  
   for(i=0;i<N;i++)
{
    stroka[i] = new char[M];
  }
или я ошибаюсь?!
0
zhadetskij
0 / 0 / 0
Регистрация: 19.09.2017
Сообщений: 11
03.06.2018, 20:01 #3
Цитата Сообщение от Solitaire Raven Посмотреть сообщение
cin>>M;
cin>>N;
for(i=0;i<N;i++)
{
stroka[i] = new char[M];
}
это массив указателей, из этого получишь что то наподобие матрицы, только из символов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2018, 20:01
Привет! Вот еще темы с ответами:

Упорядочить целые числа в строке по возрастанию. - C++
Помогите пожалуйста с задачей на СИ: Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить числа в строке по возрастанию....

Дана строка, содержащая целые числа. Вывести на экран только чётные числа - C++
я накидала код...но что-то тут не ладное((( #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdlib&gt; #include &lt;stdio.h&gt; using...

Занести в бинарный файл h из текстового файла t целые числа, упорядоченные по возрастанию - C++
Не получается..(((киньте идеи.. В текстовом файле t записаны целые числа, упорядоченные по убыванию. Занести в бинарный файл h из...

Если целые числа упорядочены по возрастанию (a<b<c<d) сменить порядок их следования на противоположный - C++
Если целые числа упорядочены по возрастанию (a&lt;b&lt;c&lt;d) сменить порядок их следования на противоположный


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

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

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