Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
3a4em
11 / 11 / 1
Регистрация: 05.12.2010
Сообщений: 26
#1

Строки обработка - C++

10.01.2011, 16:10. Просмотров 361. Ответов 6
Метки нет (Все метки)

Задание. ВВести строку, отставить в строке только симметричные фрагменты длинной мин 5 символов.
Например asdsa. Остальные заменить на пробелы. То есть из строки
weasdsafgtreweryt
должно получится
asdsa rewer

Реально нужна помощь ... заранее спасибо

 Комментарий модератора 
Дублирование тем запрещено правилами форума (п. 3.4).
Не плодите одинаковых тем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2011, 16:10     Строки обработка
Посмотрите здесь:

Обработка строки - C++
Здравствуйте. У меня есть строка: нолщаувсдлч ощзхзждцвыбьчля start Как удалить все до слова start?

Обработка строки - C++
Доброе время суток. Имеется такая задача : Дана строка, содержащая слова, разделенные одним или несколькими разделительными символами...

Обработка строки - C++
здравствуйте. такая задача: написать функцию, входным параметром которой является указатель на строку. функция должна вернуть количество...

Обработка строки - C++
Помогите решить задачи 1. Дана строка текста, в которой слова разделены пробелами и двоеточиями. Необходимо: - определить количество...

обработка строки - C++
Обработка строки при помощи указателей Задание : для ввода всех строк использовать один и тот же символьный массив tmp . ...

обработка строки в с++ - C++
дана строка(вводимая пользователем с клавиатуры). найти и вывести те слова из строки которые начинаются и заканчиваются на одну и ту же...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
681 / 583 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 16:41     Строки обработка #2
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
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
bool can_be_polindrom_5(const char* str)
{
    for (size_t i = 0; i < 2; ++i)
        if (str[i] != str[4 - i])
            return false;
    return true;
}
 
char* get_5(const char* str, const size_t& pos)
{
    char* result = new char[6];
    for(size_t i = pos; i < pos + 5; ++i)
        result[i - pos] = str[i];
    result[5] = NULL;
    return result;
}
 
int main()
{
    char string[80];
    cin.getline(string, 80);
    char* buf = strtok(string, " ");
    while(buf)
    {
        size_t len = strlen(buf);
        if (len >= 5)
        {
            size_t i = 0; 
            while (i + 5 <= len)
            {
                char* buf_5 = get_5(buf, i);
                if(can_be_polindrom_5(buf_5))
                {
                    i += 5;
                    cout << buf_5 << endl;
                }
                ++i;
                delete[]buf_5;
            }
        }
        buf = strtok(NULL, " ");
    }
    _getch();
    return EXIT_SUCCESS;
}
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
10.01.2011, 17:37     Строки обработка #3
симметричное слово не должно быть частью другого симм. слова
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
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
 
int main(){
    string s, temp1;
    vector<string>v;
    cout<<"enter string\n";
    getline(cin, s);
    string::iterator it, it1;
    for(it=s.begin();it!=s.end();++it){
        for(it1=s.end();it1!=it;--it1){
            basic_string <char> temp(it, it1);
            temp1=temp;
            reverse(temp1.begin(), temp1.end());
            if(temp1==temp&&temp.size()>=5){
                v.push_back(temp);
                it=it1-2;
                break;
            }
        }
    }
    for(int i=0;i<v.size();i++)
        cout<<v[i]<<" ";
}
sandye51
программист С++
681 / 583 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 17:56     Строки обработка #4
igorrr37,
Цитата Сообщение от 3a4em Посмотреть сообщение
отставить в строке только симметричные фрагменты длинной мин 5 символов.
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
10.01.2011, 18:28     Строки обработка #5
sandye51, минимум 5 символов, т.е.длиннее тоже можно
sandye51
программист С++
681 / 583 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 18:30     Строки обработка #6
igorrr37, а у вас и короче можно)
Миниатюры
Строки обработка  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 18:41     Строки обработка
Еще ссылки по теме:

Обработка текстовой строки - C++
Собственно задание определить, имеются ли в строке изображения двоичных чисел. написал данную прогу. #include &quot;stdafx.h&quot; #include...

Обработка символьной строки - C++
(В Си консольная версия) Функция должна находить первое вхождение в строку заданной подстроки.При реализации функции запрещается...

Обработка каждой строки - C++
Вот такое задание &quot; Ввести матрицу , вывести ее. В каждой строке матрицы опре-делить, сколько в ней положительных, сколько отрицательных и...

Обработка строки из файла - C++
Получаю строку из файла. CLogFile* logFileObj=NULL; logFileObj=new CLogFile(FileName); CString line; BOOL...


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

Или воспользуйтесь поиском по форуму:
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
10.01.2011, 18:41     Строки обработка #7
не короче, там два пробела по бокам, все таки речь шла про фрагменты а не про слова
Yandex
Объявления
10.01.2011, 18:41     Строки обработка
Ответ Создать тему
Опции темы

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