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

Удаление подстрок из строки. Суммировать "вес" удаленных строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Антивирусы http://www.cyberforum.ru/cpp-beginners/thread519863.html
На чём кроме C и C++ пишут антивирусы?
C++ метод ньютона плиз проверьте всё ли правильно???логически??? # include <iostream> # include <windows.h> # include <conio.h> # include <stdlib.h> # include <stdio.h> # include <math.h> # include <cmath> # include <iomanip> http://www.cyberforum.ru/cpp-beginners/thread519857.html
Помогите с классами C++
Задание: Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. Написать программу, демонстрирующую работу с этим классом. Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки. Задать проходной балл для поступления и определить, поступил ли абитуриент в ВУЗ. Программа: #include<iostream>
Перегрузка операторов С++ C++
Для строки символов реализовать операции: а) сравнение строк (операция ==); б) удаление из строки заданного символа (операция –). Кроме того, членом класса сделать функцию с именем strset() для удаления из первой строки всех символов, встречающихся во второй строке. я новичок в этой теме, вроде написала, но оно не работает. можете подправить пожалуйста? #include <iostream> #include...
C++ Считать с файла http://www.cyberforum.ru/cpp-beginners/thread519819.html
есть такая вот задачка(чистый С) #include<stdio.h> #include<stdlib.h> void main () { int a,i,S,k; FILE *f, *g, *d; f=fopen("1.txt", "r"); if(f==0) {printf("Takogo faila net!!!\n"); exit(1);}
C++ Типы векторов не одинаковы? Как добавить исключение если при вводе массива векторов тип оказались не одинаковые то ест я создал template <class T> Но при вводе не правильно ввел (допустим) как при таком условии добавить исключение через try и catch? подробнее

Показать сообщение отдельно
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
16.03.2012, 22:41  [ТС]     Удаление подстрок из строки. Суммировать "вес" удаленных строк
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
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
     
main(){
       vector <int> cost( 27, -1 );
       int n, z, i, j, k, l;
       char c;
       string X;
       cin>>n;
       for( i=1; i<=n; i++ ){
            cin>>c>>z;
            cost[ c-'a'+1 ] = z;
       }
       cin>>X;
       l = X.length();
       cin>>n;
       vector < pair < string, int > > C( n+1 );
       for( i=1; i<=n; i++ ){
            cin>>C[i].first;
            for( j=0; j<C[i].first.length(); j++ )
              C[i].second += cost[ C[i].first[j]-'a'+1 ];
       }
       
       vector < pair < string, int > > COMB;
       COMB.push_back( make_pair( "", 0 ) );
       for( i=0; i<l; i++ ){
         int size_start = COMB.size();
         for( j=0; j<size_start; j++ ){\
           COMB[j].first.push_back( X[i] );
           for( k=0; k<n; k++ ){
             int q = find( COMB[j].first.begin(), COMB[j].first.end(), C[k].first ) - COMB[j].first.begin();
             if( q < COMB[j].first.size() ){
                 string temp = COMB[j].first;
                 temp.erase( COMB[j].first.begin() + q, COMB[j].first.begin() + q + C[k].first.length() );
                 int w = find( COMB[j].first.begin(), COMB[j].first.end(), temp ) - COMB[j].first.begin();
                 if( w < COMB[j].first.size() )
                   COMB.push_back( make_pair( temp, COMB[j].second + C[k].second ) );
             }
           }
         }
       }
       for( i=0; i<COMB.size(); i++ )
         cout<<COMB[i].first<<" "<<COMB[i].second<<endl;
         
       system("pause");
     
}
 
Текущее время: 13:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru