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

Дана строка. Удалить из нее самую длинную подстроку, что состоит из цифр - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевести обычный файл в HTML, добавив соответствующие HTML-теги http://www.cyberforum.ru/cpp-beginners/thread1103639.html
Парни, помогите, пожалуйста. Суть задания состоит в том, что имеется файл текстовый, его нужно перевести в HTML, т.е. добавить тэги <html><body> к началу файла, заключить каждую строку в тэги <p> и </p> и добавить закрывающие тэги </body></html> в конец файла. Сделать нужно используя MFC. Не совсем понимаю как работать с CFile. Имеется, к примеру, такой код: CFile fileIn;...
C++ Что быстрее - двоичный или текстовый файл? Встал вопрос о времени чтения данных с диска, посему нужно выбрать быстрейший из этих двух способов хранения данных на внешнем носителе. Чисто логически я понимаю, что двоичный должен быть быстрее (более того, гораздо быстрее, если нужно считать данные с какого-то определенного места в файле), да и экономичнее по памяти. Однако вспомнил следующие слова своего преподавателя по программированию:... http://www.cyberforum.ru/cpp-beginners/thread1103635.html
C++ Как хранить координаты фигуры?
Что нужно сделать: при запуске программы в центре рисуется прямоугольник, в меню есть 4 кнопки: растянуть влево, вправо, вверх, вниз растягивается на 1/8 разрешения экрана по высоте или ширине, собственно вопрос как хранить координаты фигуры? Пробовал через глобальные переменные, пробовал сохранять в массив, но не выходит#include "stdafx.h" #include "Familia.h" /*#define W 200 //...
Нахождение суммы n-го количества чисел C++
Требуется написать программу, которая осуществляет подсчёт суммы, n-го количества слагаемых. S=0+1-2+3-4+...n Очень нужна ваша помощь! :help: Буду всем очень признателен, за содействие. :)
C++ Разнести весь код из main по отдельным функциям http://www.cyberforum.ru/cpp-beginners/thread1103607.html
Нужно что-бы все вычисления проводились через функции. Как мне перенести вычисления, a1,a2,a3,b1... и так далее, из мэйна в отдельную функцию? Если код можно как-то упростить, тоже пишите! Буду очень признателен за помощь. #include "stdafx.h" #include <iostream> #include <iomanip> #include <math.h>
C++ OpenIM - не работает распараллеливание циклов void Multiplication(int a, int b) { int c; int i; int j; int count(0); omp_set_num_threads(count); #pragma omp parallel #pragma omp for firstprivate(j) lastprivate(i) for(i = 0; i < 5; i+=1) // i = ряд матрицы a подробнее

Показать сообщение отдельно
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
24.02.2014, 03:34     Дана строка. Удалить из нее самую длинную подстроку, что состоит из цифр
Halkidik, так я не понял надо только числа удалить или всё слово?
В общем, следующий код находит из строки самое длинное слово (первое), которое содержит цифры,
удаляет эти цифры и печатает это слово без цифр. Исключая при этом некоторые символы,
такие как запятая, точка и т. д. Так что, в случае - first,second, запятая сыграет роль пробела.

Кликните здесь для просмотра всего текста
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <string>
#include <sstream>
 
bool check_func(char ch)
{
    if(ch == ' ' || ch == ',' || ch == '.' ||
       ch == '!' || ch == '?' || ch == ';' ||
       ch == ':' || ch == '(' || ch == ')' ||
       ch == '"' || ch == '<' || ch == '>')
        return true;
    return false;
}
 
bool check_num(std::string s)
{
    int index = 0;
    while(s[index])
    {
        for(int i = 0; i < 10; i++)
        {
            if((char)(((int)'0') + i) == s[index])
                return true;
        }
        index++;
    }
    return false;
}
 
int main()
{
    std::string s, temp;
    std::string* str;
    int index = 0, counter = 0, size;
    std::cout << "Enter string: ";
    getline(std::cin, s);
    
    while(s[index])
    {
        if(!check_func(s[index]))
        {                        
            while(check_func(s[index]))
            {
                index++;
            }
            counter++; 
        }
        index++; 
    }
    
    size = counter + 1; 
    str = new std::string[size];
    counter = 0;
    index = 0;
    
    while(s[index])
    {
        if(!check_func(s[index]))
        {
            temp += s[index]; 
            if(!s[index + 1])
            {
                str[counter] = temp; 
                counter++; 
            }              
        }
        else
        {
            if(temp != "") 
            {
                str[counter] = temp;
                temp.clear();
                counter++;
            }
        }
        index++;
    }
    
    size = counter;
    int max = 0, max_index = size;
    
    for(int i = 0; i < size; i++)
    {
        if(max < str[i].size() && check_num(str[i]))
        {
            max = str[i].size();
            max_index = i;
        }
    }
    
    if(max_index < size)
    {
        index = 0;
        temp = str[max_index];
        while(temp[index])
        {
            switch(temp[index])
            {
                case '0':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '1':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '2':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '3':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '4':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '5':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '6':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '7':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '8':
                    temp.replace(index, 1, "");
                    index--;
                    break;
                case '9':
                    temp.replace(index, 1, "");
                    index--;
                    break;
            }
            index++;
        }
        std::cout << temp << "\n";
    }
    delete [] str;
    
    system("pause");
    return 0;
}
 
Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru