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

Разделить строку на строку и переменную

08.05.2014, 02:25. Просмотров 468. Ответов 3
Метки нет (Все метки)

Задача: В первой строке ввода задаётся число n, далее n строк вида "Insert X", где X — натуральное число, или "Extract". Нужно, чтобы каждый раз, когда я ввожу строку "Insert X" программа поняла, что есть "Insert" и есть переменная x. С помощью strchr не получается. После 19 строки не знаю, что делать для обработки

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
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>
#include <string>
#include <cstdlib>
#include <map>
 
int main()
{
   using namespace std;
   vector <int> v1;
   vector <int>::iterator Iter1;
   string s, ins("Insert"), ext("Extract");
   int i,x,n;
   cin >> n;
   for (i=0; i<=n; )
   {
      getline(cin,s);
      if (s.compare(ins)==0)
      {
         cin >> x;
         v1.push_back(x);
         make_heap ( v1.begin( ), v1.end( ) );
         i++;
      }
      if (s.compare(ext)==0)
      {
         make_heap ( v1.begin( ), v1.end( ) ); 
         cout << "Max: "<< v1.front()<<endl;
         pop_heap( v1.begin( ), v1.end( ) ); v1.pop_back();
         i++;
      }
      else continue;
   }
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 02:25
Ответы с готовыми решениями:

Разделить строку двумерного массива на другую строку этого массива
Есть вот такой код, но в самом конце он не делит строки Не могу понять почему...

Разделить строку
Есть строка String. В ней записано: &quot;{&quot;0GPO&quot;:0}&quot;. Мне нужно выбросить все,...

Разделить строку
считываю из файла строку E:\Путь к файлу\ Е:\путь к файлу надо ее...

Разделить строку на слова
Есть некая строка со словами: string stroka; И есть некоторая функция...

Разделить строку на массив
Помогите разбить строку на слова и занести их в массив. Разбил. Теперь нужно...

3
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.05.2014, 05:09 #2
Не нужно здесь getline() использовать:
C++
1
cin >> s;
0
ppsukhov
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 6
08.05.2014, 15:06  [ТС] #3
Нашел решение, если кому интересно.
C++
1
2
cin >> s;
cin >> skipws >> x;
skipws позволяет прочитать то, что идет в строке после пробела. В моем случае строку "insert x" программа разделила на строку "insert", которая нужна для условия if, и переменную x. Тему можно закрывать
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.05.2014, 17:17 #4
Цитата Сообщение от ppsukhov Посмотреть сообщение
cin >> s;
cin >> skipws >> x;
cin >> s здесь зачем тогда? Вот так (как и написал раньше) всё разделит:
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
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>
#include <string>
#include <cstdlib>
#include <map>
 
int main()
{
   using namespace std;
   vector <int> v1;
   vector <int>::iterator Iter1;
   string s, ins("Insert"), ext("Extract");
   int i,x,n;
   cin >> n;
   for (i=0; i<=n; )
   {
      cin >> s;
      if (s.compare(ins)==0)
      {
         cin >> x;
         v1.push_back(x);
         make_heap ( v1.begin( ), v1.end( ) );
         i++;
      }
      if (s.compare(ext)==0)
      {
         make_heap ( v1.begin( ), v1.end( ) ); 
         cout << "Max: "<< v1.front()<<endl;
         pop_heap( v1.begin( ), v1.end( ) ); v1.pop_back();
         i++;
      }
      else continue;
   }
}
При вводе "insert x", insert прочитается в s, будет заход в первый if(), где в x прочитается x.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 17:17

Разделить строку на части
Доброго времени суток. Имеется строка: char *pBuf=new char; заполняется...

Разделить строку на символы
Вводится какая то строка, нужно каждый символ разделить на отдельные элементы....

Разделить строку на слова
I. Данный указатель на строку “Ala ma kota, a kot ma ale”. Напишите...


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

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

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