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

Палиндромы. Указатели. - C++

Восстановить пароль Регистрация
 
jood
3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 41
04.02.2011, 16:03     Палиндромы. Указатели. #1
Помогите пожалуйста решить задачу.
В программу вводится слово, состоящее из четного количества букв. Проверить, читается ли это слово справа налево так же, как и слева направо. Если читается, то вставить между половины слово пробел. Программа сначала должна сформировать строку в памяти программы, и только затем вывести на экран. Задачу решить с помощью указателей без применения стандартных функций для обработки и преобразования строк.
Пример слова "Алла".

Добавлено через 10 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
  s:string;
{функция проверки на палиндром}
function Pa(s:string):boolean;
var
  i:integer;
  fl:boolean;
begin
  fl:=true;
  for i:=1 to length(s)div 2 do
    if s[i]<>s[length(s)-i+1] then
      fl:=false;
  Result:=fl
end;
{основная программа}
begin
  writeln('Введите слово...');
  readln(s);
  if Pa(s) then
    writeln('Данное слово является палиндромом!')
  else
    writeln('Данное слово НЕ является палиндромом!')
end.
Вот паскалевский код. Ее надо в си переделать через указатели
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2841 / 1778 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.02.2011, 16:10     Палиндромы. Указатели. #2
Проверка на палиндромость слова
C
1
2
3
4
5
6
7
8
9
10
11
int is_it(const char * s){
        const char * head, * tail;
        
        for ( tail = s; *tail; ++tail )
                ;
        for ( head = s, --tail; head < tail; ++head, --tail )
                if ( *head != *tail )
                        return 0;
                
        return 1;
}
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
04.02.2011, 16:16     Палиндромы. Указатели. #3
Цитата Сообщение от jood Посмотреть сообщение
без применения стандартных функций для обработки и преобразования строк
что, даже strlen нельзя?
asics
Freelance
Эксперт C++
 Аватар для asics
2841 / 1778 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.02.2011, 16:17     Палиндромы. Указатели. #4
Цитата Сообщение от bobrovskii Посмотреть сообщение
что, даже strlen нельзя?
C
1
2
3
4
5
6
7
8
size_t dlinna(const char *s){
        const char *p;
 
        if ( !s )
                return 0;
        for ( p = s; *p; p++ );
        return (p - s);
}
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
04.02.2011, 16:23     Палиндромы. Указатели. #5
asics, я вкурсе как самописней strlen сделать.
asics
04.02.2011, 16:24
  #6

Не по теме:

Цитата Сообщение от bobrovskii Посмотреть сообщение
asics, я вкурсе как самописней strlen сделать.
....

jood
3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 41
04.02.2011, 16:28  [ТС]     Палиндромы. Указатели. #7
bobrovskii, strlen можно
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
04.02.2011, 16:33     Палиндромы. Указатели. #8
asics,

Не по теме:

не спорю, но ни тебе решать, что тут в тему.

asics
04.02.2011, 16:38
  #9

Не по теме:

bobrovskii, Ты совершенно прав, так-как я ничего здесь и не решал, не знаю з чего ты это написал

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2011, 16:42     Палиндромы. Указатели.
Еще ссылки по теме:

Найти числа от 1 до 99 - палиндромы, которые при возведении в квадрат также дают палиндромы (используя циклы) C++
Указатели и массивы. Указатели и функции C++
Указатели на массивы. Указатели и функции C++
C++ Константные указатели и указатели на константу
Используются ли на практике указатели на указатели объектов? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
04.02.2011, 16:42     Палиндромы. Указатели. #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main(){
    char c[20]={'\0'};
    cin>>c;
    char *b=c, *a;
    while(*b!='\0')++b;
    for(a=c; b!=a; ++a, --b){
        if(*a!=*(b-1)) return 0;
        *b=*a;
    }
    *b=' ';
    cout<<c;
}
Yandex
Объявления
04.02.2011, 16:42     Палиндромы. Указатели.
Ответ Создать тему
Опции темы

Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru