Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2018, 17:55   #1
Nastya00
 
Регистрация: 08.12.2018
Сообщений: 3
По умолчанию Создать массив указателей. Вывести слово в обратном порядке.

Дано слово. Создать массив указателей на каждую букву в слове. Вывести слово в обратном порядке.

Подскажите, что не так? Чувствую что-то не так с этими указателями, а понять не могу.

Код:
#include <stdio.h>
#include <stdlib.h>
 
int main(){
 
    char str[] = "Hello";
    char *ptr = str;
    char *lst_of_ptrs[5];
    int ptr_num = 0;
 
    while(*ptr != '\0') {
        lst_of_ptrs[ptr_num] = ptr;
        ptr++;
        ptr_num++;
    }
 
    int length = strlen(str);
 
    for(int i = 0; i < length - 1; i++)
        for(int j = 0; j < length - i - 1; j++){
            char temp = lst_of_ptrs[j];
            lst_of_ptrs[j] = lst_of_ptrs[j + 1];
            lst_of_ptrs[j + 1] = temp;
        }
 
    puts(str);
 
 
  return 0;
}
Nastya00 вне форума Ответить с цитированием
Старый 15.12.2018, 19:57   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А зачем выводить str? Она же по ходу дела не меняется
Надо выводить на основе lst_of_ptrs
Black Fregat вне форума Ответить с цитированием
Старый 15.12.2018, 22:43   #3
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Nastya00 Посмотреть сообщение
Создать массив указателей на каждую букву в слове
Это уже черезчур.

Возьмите, <censored>, дискету 5.25 и <censored> ней препода, только пощечины этой дискетой слева-направо и справа-налево по мордяке.

Я не понял: вот <censored> на каждую букву создавать массив указателей?

Последний раз редактировалось BDA; 15.12.2018 в 23:15.
Nintra GrayWorker вне форума Ответить с цитированием
Старый 15.12.2018, 23:05   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Наверно, массив не на каждую букву. На 'Ж' - один указатель, на 'О' - следующий и т.д. - на все слово и получится массив. Но какой в этом глубинный смысл - без поллитра не просматривается.
digitalis вне форума Ответить с цитированием
Старый 15.12.2018, 23:18   #5
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Nastya00 Посмотреть сообщение
Создать массив указателей на каждую букву в слове
Ладно, вы сишники - сами решайте.

Последний раз редактировалось Nintra GrayWorker; 15.12.2018 в 23:27.
Nintra GrayWorker вне форума Ответить с цитированием
Старый 16.12.2018, 00:53   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Nastya00, у вас в коде ошибки.

Код:
#include <stdio.h>
#include <string.h>
 
int main(){
 
    char str[] = "Hello";
    char *ptr = str;
    char *lst_of_ptrs[5];
    int ptr_num = 0;
 
    while(*ptr != '\0') {
        lst_of_ptrs[ptr_num] = ptr;
        ptr++;
        ptr_num++;
    }
 
    int length = strlen(str);
 
    for(int i = 0; i < length - 1; i++)
        for(int j = 0; j < length - i - 1; j++){
            char temp = *lst_of_ptrs[j];
            *lst_of_ptrs[j] = *lst_of_ptrs[j + 1];
            *lst_of_ptrs[j + 1] = temp;
        }
 
    puts(str);
 
 
  return 0;
}
P.S. Можно использовать вариант попроще

Код:
#include <stdio.h>
#include <string.h>

int main()
{
  char str[] = "Hello";
  char rstr[sizeof(str)];
  char *pstr[sizeof(str) - 1];
  int lstr = strlen(str);

  for (int i = 0; i < lstr; i++)
  {
    pstr[i] = &str[i];
    rstr[lstr - i - 1] = *pstr[i];
  }
  rstr[lstr] = 0;

  puts(rstr);

  return 0;
}
Всегда рад помочь!

Последний раз редактировалось Terran; 16.12.2018 в 01:36. Причина: Добавил код.
Terran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести слово в обратном порядке kat-fm Помощь студентам 3 23.01.2018 13:38
как вывести массив в обратном порядке С++ stpategImws Помощь студентам 1 02.12.2012 19:23
слово в обратном порядке (Паскаль АВС) tanya61043 Помощь студентам 1 27.05.2012 23:09
Составить программу, которая записывает каждое слово в тексте в обратном порядке.Delphi grongost Помощь студентам 4 23.09.2010 20:23
Вывести числа в обратном порядке asmcc Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 20.02.2010 11:46