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

Однострочный редактор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Моделирование океана - ошибки линковщика при компиляции http://www.cyberforum.ru/cpp-beginners/thread693392.html
Набрал огромный код из книги "C++ изнутри", при компиляции получаю: Ошибка 1 error LNK2001: неразрешенный внешний символ ""protected: static class Ocean * Cell::Ocean1"...
C++ Книга на английском Ребят, подскажите, пожалуйста, какую-нибудь нормальную книгу/книги по плюсам на английском языке, аналогов (переводов) которой на русском нету. Ну и которую желательно содрать откуда-нить можно :)... http://www.cyberforum.ru/cpp-beginners/thread693390.html
Является ли двумерный массив симметричным относительно главной диагонали C++
Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная диагональ — та, которая идёт из левого верхнего угла двумерного массива в правый нижний. Формат входных...
Нужно доработать программу с циклами и условиями C++
Здравствуйте. Помогите дописать программу . Условие во вложении, нужно исправить ошибки в моем коде, который я добавляю #include <iostream.h> #include <conio.h> float Y (float x) { float y;...
C++ простенькая задачка http://www.cyberforum.ru/cpp-beginners/thread693380.html
Здраствуйте, люди добрые!) Подскажите решение, ато сыну задали в школе и он чето туго соображает) Дано натуральное число. Определить на какую цифру чётную или нечётную оканчивается число.
C++ Сформировать массив C, элементы которого равны суммам соответствующих элементов массивов A и B подскажите как создать эту прогу: /*Заданы два одномерных массива A и B.сформировать массив С, где ci=ai+bi.*/ плиз #include<iostream.h> #include<conio.h> int main() { int A; подробнее

Показать сообщение отдельно
Errantem
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 13

Однострочный редактор - C++

09.11.2012, 22:13. Просмотров 735. Ответов 0
Метки (Все метки)

Текстовый редактор OLE (One-Line Editor) работает с текстом, состоящим ровно из одной строки строчных латинских букв. Редактор поддерживает следующие команды, длиной в один символ каждая:


L -- переместить курсор на 1 символ влево


R -- переместить курсор на 1 символ вправо


X -- удалить символ справа от позиции курсора


строчная латинская буква -- вставить справа от текущей позиции курсора указанную букву, переместить курсор на один символ вправо

Команды, пытающиеся переместить курсор за пределы строки или удалить символ справа от последнего символа строки, игнорируются редактором.

Требуется по данному начальному состоянию строки, начальной позиции курсора и последовательности команд определить результат работы редактора.

Длина исходной строки находится в диапазоне от 1 до 1000000 символов. Длина строки команд находится в диапазоне от 1 до 100000 символов.

0 <= p <= длина исходной строки.
Исходные данные

Входной файл состоит из 3 строк. В первой строке содержится позиция курсора p, (0 - курсор перед первым символом, 1 - после первого перед вторым, и т.д.) во второй строке - начальное состояние строки редактора, в третьей - последовательность команд.
Результат

Выходной файл должен содержать строку, полученную в результате выполнения команд.

Добавлено через 52 минуты
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
#include <iostream>
#include <list>
#include <vector>
#include <string>
int main ()
{ 
 
 std::list<char> text;
 
 std::list<char>::iterator it;
 
 std::vector<char> mes (1000001);
 
 unsigned int loc_cur=0;
 
 std::cin>>loc_cur;
 
 std::cin.get();
 
 std::cin.getline (&mes[0],1000001);
 
 for (unsigned int i=0;mes[i];i++)
 {
 text.push_back (mes[i]);
 }
 
 mes.clear ();
 
 std::vector<char> cmd (100001);
 
 std::cin.getline (&cmd[0],100001);
 
 
 if (!(loc_cur<=text.size()))
 {
 loc_cur=0;
 }
 
 it=text.begin ();
 
 for (unsigned  int y=0;y<loc_cur;y++)
 {
 it++;
 }
 
 
 
 
 for (int i=0;cmd[i];i++)
 {
  
 if (text.empty ())      
 {
 it=text.begin();     
 }
 
 
 
 if (cmd[i]=='a')
 {
 text.insert (it,cmd[++i]); 
 
 }
 
 
 else if  (cmd[i]=='L')
 { 
 if (it!=text.begin())
 {
 it--; 
 }
 }
 
 else if (cmd[i]== 'R')
 {
 if (it!=text.end())
 {
 it++; 
 }
 }
 
 else if (cmd[i]== 'X')
 { 
 if (it!=text.end ())
 {
 it=text.erase (it);  
 }
 }
 
 else
 {
 text.insert (it,cmd[i]); 
 }
 
 }
 
 while (text.size ()>0)
 {
 std::cout << text.front();
 
 text.pop_front ();
 }
 
 
 return 0;
}
скажите пожалуйста что не так с кодом, пишет ошибка выполнения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru