IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> .работаСоСтроками, (вижуал)_С++
кучаТрупов
сообщение 30.10.2009 18:43
Сообщение #1


изувер
**

Группа: Пользователи
Сообщений: 88
Пол: Женский
Реальное имя: ann

Репутация: -  1  +


оставить в строке фрагменты,симметричные центрального символа, длиной более 5 символов.остальные символы заменить на пробелы(пример - dcbabcd)

привет) помогите пожалуйста реализовать в с++. )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
кучаТрупов
сообщение 9.11.2009 20:20
Сообщение #2


изувер
**

Группа: Пользователи
Сообщений: 88
Пол: Женский
Реальное имя: ann

Репутация: -  1  +


спасибо большое)
вот то ,что получилось у меня:

Код


// otanocho.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;

string space(string s, int i, int j)
{
    for(int k=i;k<j;k++)
        s[k]=' ';
    return(s);
}
inline int min(int i, int j){ return (i == j) ? i : (i<j ? i : j); }

int index_symmetry(string s, int k)
{
    bool symmetry_availability=true;
    int size=s.size(),
        i=k;
    while((i-k<=min(size-k,k))&&(symmetry_availability==true))
        if (!(s[i]==s[2*k-i]))
            symmetry_availability=false;
        else i++;
    return(i-k-1);
}
void main()
{
    string s;
    int startsel=0,
        endsel=0,
        acc;
    printf("Enter a string, or leave it blank\n");
    getline(cin,s);
    if (s=="")
        s="awwearfsasdfdsadfdf hhksljdjksghjkjhg";
    int size=s.size();
    system("cls");
    printf("accuracy=");
    cin >> acc; cout << "\n";
    cout << s << "\n";
    for(int i=1;i<size;i++)
    {
        if((index_symmetry(s,i)>0)&&(index_symmetry(s,i)>=acc))
        {    
            endsel=i-index_symmetry(s,i);
            if((startsel<endsel)&&(endsel!=0))
                s=space(s,startsel,endsel);
            startsel=i+index_symmetry(s,i)+1;
        }
    }
    s=space(s,startsel,size);
    cout << s << "\n";
    getchar();
    getchar();
}    


Сообщение отредактировано: кучаТрупов - 9.11.2009 20:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.07.2025 13:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"