Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

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

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

6
sandye51
программист С++
685 / 587 / 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;
}
1
igorrr37
1648 / 1276 / 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]<<" ";
}
1
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 17:56 #4
igorrr37,
Цитата Сообщение от 3a4em Посмотреть сообщение
отставить в строке только симметричные фрагменты длинной мин 5 символов.
0
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
10.01.2011, 18:28 #5
sandye51, минимум 5 символов, т.е.длиннее тоже можно
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 18:30 #6
igorrr37, а у вас и короче можно)
0
Миниатюры
Строки обработка  
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
10.01.2011, 18:41 #7
не короче, там два пробела по бокам, все таки речь шла про фрагменты а не про слова
0
10.01.2011, 18:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 18:41
Привет! Вот еще темы с ответами:

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

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

Обработка строки Char - C++
Задание: Пользователь вводит текст(рандомные символы). Найти наибольшую группу символов состоящих не из букв и вывести начальную...

обработка строки указателями с++ - C++
С клавиатуры вводится стока из нескольних слов, разделёнными пробелами. При помощи указателей удалить все повторяющиеся друг за друго...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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