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

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

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

Показать сообщение отдельно
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.12.2008, 02:43
Код
 
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAXLINE  1000    /* максимальная длина строки */
#define MAXWORD  100     /* максимальная длина слова  */

/* ищет в тексте слова палиндромы и числа палиндромы;
   без переносов; на винде оба языка на лине только инглиш */
main()
{
    char *reverse(char []);
    char line[MAXLINE], word[MAXWORD], tmp[MAXWORD], *p, *q;
    int nc;
    
    while ((p = fgets(line, MAXLINE, stdin)) != NULL) {
        if (p[0] == '\n' || (p[0] == '\r' && p[1] == '\n'))
            break;
        for (q = p; *q != '\0'; q++)
            if(ispunct(*q))
                *q = ' ';
        while (sscanf(p, "%s%n", word, &nc) == 1) {
            p += nc;
            strcpy(tmp, word);
            if (strcmp(word, reverse(tmp)) == 0 && strlen(word) > 1)
                printf("%s\n", word);
        }
    }        
    return 0;
}

/* reverse: обращает строку s */
char *reverse(char s[])
{
    char *p, *q;
    int c;
    
    p = q = s;
    while (*q)
        q++;
    for (q-- ; p < q; p++, q--)
        c = *p, *p = *q, *q = c;
    return s;
}
короче не рискнул if (!isalpha(*q) && !isdigit(*q)), т.к. может не распознать русские буквы как буквы
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru