The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Помогите решить один вопрос"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Помогите решить один вопрос" +/
Сообщение от JetSnaiLemail (ok), 01-Фев-07, 19:00 
>Добрый день. Помогите, плиз, кто знает, как:
>Есть массив char a[]="12345678".
>Необходимо поменять местами элементы 1 и 2, 3 и 4, 5 и
>6, 7 и 8.
>Т.е. получится 21436587 и ....
>Получившийся массив символов преобразовать в массив int, причем ...
>1-й элемент должен стать 0х21, 2-й 0х43, 0х65 и 0х87.
>Т.е. массив из шестнадцатиричных цифр, ну или их десятичных эквивалентов.
>

И чему сейчас студентов учат?


#include <cstdio> // Для printf
#include <algorithm> // Для std::swap

using std::swap;

int main()
{
  // Это, собственно, массив, который у тебя есть.
  char data[] = "12345678";

  // Необходимо поменять местами элементы 1 и 2, 3 и 4, 5 и 6, 7 и 8.
  // Т.е. получится 21436587 и ....
  //    Да не вопрос вообще.

  swap(data[0], data[1]);
  swap(data[2], data[3]);
  swap(data[4], data[5]);
  swap(data[6], data[7]);

  // Получившийся массив символов преобразовать в массив int, причем ...
  // 1-й элемент должен стать 0х21, 2-й 0х43, 0х65 и 0х87.
  // Т.е. массив из шестнадцатиричных цифр, ну или их десятичных эквивалентов.
  //
  // И что, за этим дело стало? Вот, пожалуйста:

  int res[4];

  for (int i = 1; i <= 4; ++i)
  {
    const int dst_offset = i - 1;
    const int src_offset = i * 2 - 2;
    res[dst_offset] = data[src_offset] - '0';
    res[dst_offset] *= 16;
    res[dst_offset] += data[src_offset + 1] - '0';
  }

  // Не верится? Давай проверим:
  printf("%#x, %#x, %#x, %#x\n", res[0], res[1], res[2], res[3]);

  return 0;
}

>Заранее спасибо.

С тебя пиво :-)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Помогите решить один вопрос, invisible, 01-Фев-07, 16:06  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру