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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите доделать прогу телефонного справочника http://www.cyberforum.ru/cpp/thread18321.html
Вот написал с трудом прогу телефонного справочника. Но там нет редактирования записей и поиска по базе. Подскажите пожалуйста как лучше сделать и оформить. Вот коб проги: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <ctype.h> struct {
C++ По матрице размерностью m*n и заданному числу построить вектор, элемент которого равен 1 По матрице размерностью m*n и заданному числу построить вектор, элемент которого равен 1, если наибольший элемент соответствующей строки матрицы не меньше заданного числа, и 0 - в остальных случаях. Определить моду для элемента вектора. Считать m<=10, n<=20. http://www.cyberforum.ru/cpp/thread18317.html
C++ Поиск предельно допустимых перемещений объекта
Помогите пожалуйста с поиском готовой программы или алгоритма для курсовика,по теме:"Поиск предельно допустимых перемещений объекта вдоль заданного вектора,с учетом положения других объектов,объекты представляются в полигональном виде(графический интерфейс)". Добавлено через 19 часов 49 минут 54 секунды В программе надо расставить несколько объектов,указать начальную и конечную точку...
Определить длину периода 1/n C++
Ребята, помогите пожалуйста!!!не успеваю к экзамену!!!!:wall: 1.Дано натуральное число N. Определить длину периода 1/n. Период дроби равен периоду в последовательности остатков. Построить график зависимости периода от N. 2.Даны два массива: x ≤… ≤ x, y ≤ … ≤ y и число q. Найти сумму вида x + y, наиболее близкую к числу q (число действий порядка k + l, дополнительная память –...
C++ Строки и файлы http://www.cyberforum.ru/cpp/thread18245.html
задача:прочитать из файла имя, фамилию разделенные пробелами, а затем записать их в масссив парами, указать размер и вывести на экран...помогите,плиииз!!!:help:
C++ Аморфные числа Помогите пожалуйста решить задачки очень надо а то до экзамена не допустят буду очень признателен и благодарен. 1.)Аморфные числа. Аморфными называються числа которые содержаться в последних рядах своего квадрата, например 5 = 25 25 = 625 Напишите программу для нахождения заданного числа аморфных... подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
17.08.2011, 10:02     Найти в заданном тексте, состоящем из n строк, все слова палиндромы и числа палиндромы
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.
 
Текущее время: 14:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru