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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать характер ошибки? http://www.cyberforum.ru/cpp-beginners/thread18714.html
Как узнать характер ошибки при открытии файла - например, если файл просто не найден или не существует или ошибка при открытии?
C++ Задачка с одномерным массивом.Найти количество удвоенных нечётных чисел Помогите пожалуйста. Вот текст задания: Даны целые числа a1,a2..an.Известно что a1>0 и что среди a2..an есть хотя бы одно отрицательное число.Пусть a1,a2..an члены данной последовательности.(N заранее не известно) Найти количество удвоенных нечётных чисел среди последовательности a1,a2..an. http://www.cyberforum.ru/cpp-beginners/thread18707.html
Задание по С++ C++
вот задание - Дана непустая последовательность неотрицательных чисел, записанных в семеричной системе счисления. Напечатать в десятичной системе наибольшее из них. Проконтролировать правильность ввода чисел помогите люди добрые...
с++ C++
помогите бедной девушке решить задачи по с++!!! 1. даны 2 действительных числа. удвоить первое число, если оно меньше второго, в остальных случаях оставить числа без изменений. 2. найти суммму всех четных чисел в диапазоне от 1 до 40. 3.в одномерном массиве, состоящем из N вещественных элементов, найти сумму элементов массива, больших числа А. числа A,N вводятся с клавиатуры. 4.дан двумерный...
C++ Задача на Метод сортировки (Слияние) http://www.cyberforum.ru/cpp-beginners/thread18668.html
Здравствуйте! Прошу пожалуйста помочь сделать зачетную работу на С++. Задание: Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента (в примере ниже, сделано левее минимального, т.е нужно исправить), и имеющие нечетный индекс. Массив В отсрортировать по возрастанию, используя метод слияния. (сортировку тоже нужно доработать или исправить чтобы...
C++ Решить уравнение методом итерации Составить задачу на языке Си. Решить уравнение 1-x+sin x -ln(1+x)=0 методом итерации. Отрезок содержащий корень: Приближенное значение корня: 1,1474 #include <stdio.h> #include <math.h> double F(double x) { double F; подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2008, 08:46     Проверить, является ли строка, введённая с клавиатуры, палиндромом
Код
 
#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;
}
 
Текущее время: 16:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru