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

Проверить, является ли строка, введённая с клавиатуры, палиндромом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать характер ошибки? http://www.cyberforum.ru/cpp-beginners/thread18714.html
Как узнать характер ошибки при открытии файла - например, если файл просто не найден или не существует или ошибка при открытии?
C++ Задачка с одномерным массивом.Найти количество удвоенных нечётных чисел Помогите пожалуйста. Вот текст задания: Даны целые числа a1,a2..an.Известно что a1>0 и что среди a2..an есть хотя бы одно отрицательное число.Пусть a1,a2..an члены данной последовательности.(N... http://www.cyberforum.ru/cpp-beginners/thread18707.html
Дан текстовый файл открыть его удалить из него все пробелы C++
Мне нужно решить такую задачу дан текстовый файл открыть его удалить из него все пробелы причем местоположение пробелов записать в другой файл, чтобы можно то удалять все пробелы то снова их...
Задание по С++ C++
вот задание - Дана непустая последовательность неотрицательных чисел, записанных в семеричной системе счисления. Напечатать в десятичной системе наибольшее из них. Проконтролировать правильность...
C++ с++ http://www.cyberforum.ru/cpp-beginners/thread18681.html
помогите бедной девушке решить задачи по с++!!! 1. даны 2 действительных числа. удвоить первое число, если оно меньше второго, в остальных случаях оставить числа без изменений. 2. найти суммму всех...
C++ Задача на Метод сортировки (Слияние) Здравствуйте! Прошу пожалуйста помочь сделать зачетную работу на С++. Задание: Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента (в примере... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2008, 08:46
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
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
#define MAXLINE  1000    /* максимальная длина строки */
 
/* проверяет является ли строка палиндромом без учёта регистра,
   учитываются только буквы; под линем только инглиш */
main()
{
    char *reverse(char []);
    char line[MAXLINE], clear[MAXLINE], tmp[MAXLINE], *p, *q;
    int c;
    
    while ((p = fgets(line, MAXLINE, stdin)) != NULL) {
        for (q = clear; (c = *p++) != '\0'; )
            if (isalpha(c))
                *q++ = tolower(c);
        *q = '\0';
        strcpy(tmp, clear);
        if (strcmp(clear, reverse(tmp)) == 0
         && strlen(clear) > 1)
            printf("%s", line);
    }        
    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;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru