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

> Внимание!

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

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


изувер
**

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

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


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

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


Гость






Ну, в принципе, если тебе не нужны спецсредства С++ (всякие STL-и и тому подобное), то задача решается так:
#include <iostream>

int main()
{
char s[] = "efd0dcbtrartbcdmrewttrj hbu o abcdedcbahg h\0";
char *first = s;
for(char *p = s + 2; *(p + 2); p++)
{
int len;
for(len = 1; p - len >= s && *(p + len) && *(p - len) == *(p + len); len++);
len -= 1;

if(2 * len + 1 > 5)
{
for(char *last = p - len; first != last; )
{
*first++ = ' ';
}
first = p + len + 1;
}
}
for(; *first; )
{
*first++ = ' ';
}
std::cout << s << std::endl;
return 0;
}
(почти чистый С, за исключением вывода результата)

Проверь, отработает ли оно в VC++, я проверял другим компилятором.
 К началу страницы 
+ Ответить 

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


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

 



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