#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cout << "Enter string:\n";
cin >> str;
for(unsigned int i = 0; i < str.length() - 1; ++i)
{
unsigned int j = i + 1;
while(j < str.length() && str == str[j])
++j;
if(j > i + 2)
{
str.erase(i, j - i);
--i;
}
}
cout << "Result string:\n" << str << endl;
}
Здвинуть строку C++
п.с. и еще есть задача: "вывести правельный треугольник в центр экрана, с введением параметров фигуры". Помогите пожалуйста люди добрые=)
вот алгоритм.
1. Записываете в переменную(prev например) первый символ строки
2. Организуете цикл по символам строки со второго символа
3. В цикле сравниваете текущий символ с запомненным
4. Если символы одинаковые прибавляете счетчик (переменная типа int)
5. Копируете текущий символ в переменную prev
6. Если счетчик больше двух выходим из цикла
7. После выхода из цикла удаляем строку.
Цитата: ORINE
Как реализовать здвиг строки(тобишь я так понимаю удаление), если в этой строке находиться болие двух одинаковых символов?
CString::Replace(.....)
Цитата: ORINE
п.с. и еще есть задача: "вывести правельный треугольник в центр экрана, с введением параметров фигуры". Помогите пожалуйста люди добрые=)
Экрана компьютера или окна приложения?
Цитата: sigmov
CString::Replace(.....)
Экрана компьютера или окна приложения?
Экрана компьютера или окна приложения?
Окна приложения
#include <iostream>
#include <string.h>
void main()
{
using namespace std;
char st[256];
char str1[100];
cout<<"vvedi stroku\n";
cin.get(st,256);
int n=strlen(st);
cout<<"Otvet: \n";
for(int i=0; i<=n; i++){
if(st==st[i+1]){
//cout<<"Found";
for(int j=0; j<=i; j++)
st[j]=st[j-1];//çäâèãàåì ñòðîêó
cout<<st[j];
cout<<"\n";
}}
1) параметры во второй задаче - длина ребра треугольника, или что-то ещё.
2) какой компилятор?
Цитата: alex-kniaz
2 вопроса
1) параметры во второй задаче - длина ребра треугольника, или что-то ещё.
2) какой компилятор?
1) параметры во второй задаче - длина ребра треугольника, или что-то ещё.
2) какой компилятор?
1) Параметры вводяться с клавиатуры, треугольник должен быть правельным
2) Желательно на VC++ но можно и Borland попробовать
Если вам нужно, имея строку, удалить (путем сдвига) все идущие подряд сочетания одинаковых символов в количестве > 2, т.е. чтобы например из строки:
[FONT="Courier New"][SIZE="2"]abbcccddddeeeeefggghhi[/SIZE][/FONT]
получилась строка:
[FONT="Courier New"][SIZE="2"]abbfhhi[/SIZE][/FONT]
и если вам надо сделать это на C++, то можете использовать объекты std::string и функцию erase для "сдвига":
Код: