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

Найти в заданном тексте, состоящем из n строк, все слова палиндромы и числа палиндромы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание электронных часов в графическом режиме Borland C++ http://www.cyberforum.ru/cpp/thread17425.html
Как создать электронные часы в графическом режиме Borland C++ ?
C++ Помогите создать готовое приложение Возникла проблема с созданием готовой программы которую можно было бы запустить на другом компьютере на котором нет среды разработки. Помогите плиз.Программа написана на Билдере.Если брать Экзешник который получается в результате компиляции то он норм запускается и работает на моем компьютере. На другом он запускаеться, но 1-ю задачу выполняет некоректон, а при запуске 2-й вообще... http://www.cyberforum.ru/cpp/thread17073.html
C++ Создание простенькой игры
Кто нибудь раньше читал книги-игры? Ну там: если вы поварачиваете направо, то 326 параграф; если налево то 23. никто не подскажет на каком уровне можно написать такую программу что бы она сама переносила на нужные ссылки, записывала имеющиеся предметы, проигрывала сражения и т.д.
Различия описания классов в DEV и Visual C++ C++
Собственно что хотелось бы спросить скачал DEV среду, а решебник нашел по Visual. Сейчас смотрю построение перегруженного конструктора, приведён пример : class banan { class // ругается ВОТ В ЭТОМ МЕСТЕ int x ; public: int y;
C++ Двубитный порт в однобитный http://www.cyberforum.ru/cpp/thread15253.html
Ребята меня тут попросили помочь с заданием с контроллерами и требует двубитный порт при прмрщи цикла If преобразовать в однобитный я честно говоря что то не совсем понимаю как это представить может кто ссылочку какую нибудь кинет где почитать можно об этом? или надоумит как это притворить в жизнь? у меня вот какие соображения имеются только не знаю верны ли они что это должно выглядить на...
C++ Запись видео в файл с окна приложения Суть такова: есть оконное приложение, на котором отображается видео. Также в окне этого приложения есть разные органы управления (кнопки и проч.). Необходимо захватить видео, которое на окне отображается, либо все окно целиком. Возможно кто-то делал что-то подобное и знает как?:) Посоветуйте, пожалуйста))) подробнее

Показать сообщение отдельно
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
17.08.2011, 10:02
Blade , ещё вариант по вашей задачи
_д_м_и_т_р_и_й_ , и ваш вариант по вашей задачи.
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
char* p_strrev(char* str);
int   p_ispoli(const char* str);
int   p_findpoli(const char* str, char* s);
void  str_erase(char* str, char* s);
void  print_poli(char* str, int ignore);
 
int  main(void) {
 
    char buf[128] = "The Super ATTA PPP, 5555, 55, 4 [repuS], adam-mada, optionals.";
//  gets(buf);
 
    print_poli(buf, 0);  // выводим список найденных палиндромов
 
    printf("src: %s\n", buf);  // исходная строка
    print_poli(buf, 1); // удалить все палиндромы из строки
    printf("dst: %s\n", buf);     // показать её
 
    getchar();
    return 0;
}
 
 
// реверсия строки
char* p_strrev(char* str) {
   char* s = str + (strlen(str)-1), ch, *tmp = str;
   while(str < s) {
       ch   = *str;
       *str = *s;
       *s   = ch;  
       ++str;
       --s;
   } 
   return tmp;
}
 
// сравнение на палиндром слова ABBA = true, ALKA = false
int   p_ispoli(const char* str) {
    const char* ls = str + (strlen(str)-1);
    for(; str < ls && *str == *ls; ++str, --ls);
    if(str == ls || ! ~(ls - str))
         return 1;
    return 0;
}
 
// поиск в строке палиндрома ABC = CBA
int  p_findpoli(const char* str, char* s) {
    if((str = strstr(str, s))) {
        if(! isalnum( *(str + strlen(s)) ))
                      return 1;
    }
    return 0;
}
 
 
// удаление из строки слова, str = "The ocean, ocean..." -> str_erase(str, "ocean") -> "The, ..." 
void  str_erase(char* str, char* s) {
    char* a, *b;
    int   len;
    do {
       for(a = str, b = s; *a == *b; *a++, *b++);
           if(! *b) {
                for(len = strlen(s); len; len--)
                      for(a = str, b = str + 1; *a; *a++ = *b++);
           }
    } while( *str++ );
}
 
 
// вот самая функция по выводу палиндромов ignore = 0, или удаление  палиндромов из строки ignore = 1
void  print_poli(char* str, int ignore) {
      char buf[48], *i, *src = str;
      while( *src ) {
           for(i = buf; isalnum(*src) && *src; *i++ = *src++);
           *i    = '\0';
           if(strlen(buf) > 1) {
                    if(p_ispoli(buf)) {
                           if(! ignore) 
                                 puts(buf);
                           else {
                                 str_erase(str, buf);
                                 src = str;
                           }
                    } else {
                        if(p_findpoli(src, p_strrev(buf))) {
                             if(! ignore) {
                                 puts(p_strrev(buf));
                                 puts(p_strrev(buf));
                             } else { 
                                 str_erase(str, buf);
                                 str_erase(str, p_strrev(buf));
                                 src = str;
                             }
                         }
                   }
             }
             for(; ! isalnum(*src) && *src; *src++);
    }
}
"The Super ATTA PPP, 5555, 55, 4 [repuS], adam-mada, optionals."
Результат:
Super
repuS
ATTA
PPP
5555
55
adam
mada

src: The Super ATTA PPP, 5555, 55, 4 [repuS], adam-mada, optionals.
dst: The , , , 4 [], -, optionals.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru