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

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

Восстановить пароль Регистрация
 
3a4em
11 / 11 / 1
Регистрация: 05.12.2010
Сообщений: 26
10.01.2011, 16:10     Строки обработка #1
Задание. ВВести строку, отставить в строке только симметричные фрагменты длинной мин 5 символов.
Например asdsa. Остальные заменить на пробелы. То есть из строки
weasdsafgtreweryt
должно получится
asdsa rewer

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

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

Обработка строки C++
обработка строки в с++ C++
Обработка строки C++
C++ Обработка строки
C++ Обработка строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 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
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 17:56     Строки обработка #4
igorrr37,
Цитата Сообщение от 3a4em Посмотреть сообщение
отставить в строке только симметричные фрагменты длинной мин 5 символов.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
10.01.2011, 18:28     Строки обработка #5
sandye51, минимум 5 символов, т.е.длиннее тоже можно
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 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++
Обработка строки из файла C++
обработка строки C++

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

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

Текущее время: 02:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru