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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
frolandr
0 / 0 / 0
Регистрация: 18.03.2014
Сообщений: 8
#1

Конвертировать массив char в UrlEncode - C++

18.03.2014, 23:25. Просмотров 360. Ответов 2
Метки нет (Все метки)

Помогите конвертировать массив char в UrlEncode. Начал учить c++ не давно, и вот сразу получил такое задание. Функцию конвертирования не нашел, по этому пишу так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char hexChars[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',0x00};
int StrLen = strlen(Params[0]);
char buf[1000] = "";
char bu[8] = "";
int k = 0;
 
for (int i = 0; i < StrLen; i++) 
  {
   //Записываем знак %
   buf[k] = '%';
   k++;
            
   int j = ((int)Params[0][i]);
   int idx = j >> 4;              //Делим на 16
   char qaz = hexChars[idx];
   buf[k] = qaz;
   k++;
 
   idx = ((int)Params[0][i]) & 0x0F; //Находим остаток от деления
   buf[k] = hexChars[idx];
   k++;
  }
Подскажите где ошибка пожалуйста.

Добавлено через 5 часов 42 минуты
Может быть кто подскажет, можно ли использовать вот это:
itoa(Params[0][i], buf, 16);
Но на выходе число ffffffE0, а нужно только %E0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 23:25     Конвертировать массив char в UrlEncode
Посмотрите здесь:

конвертировать UnicodeString в char* - C++
получилось вот так char* aa = (char*)(Edit1-&gt;Text).c_str(); какие есть еще варианты? спасибо

Конвертировать float в *char??? - C++
Как преобразовать float в *char?

char to int не могу не как конвертировать - C++
читаю из файла в массив char'ов соответственно есь массив из четырех элементов в каторых записан один int, вот как это кампу объяснить ...

функция возвращает массив слов, содержащихся в текстовом сообщении char* Words(char *s) - C++
Стоит такая задача: функция должна возвратить массив слов, содержащихся в текстовом сообщении char* Words(char *s) Как это можно...

Алгоритм urldecode / urlencode - C++
Есть ли у кого нить алгоритм шифровки расшифровки адреса URI?

Char* в массив char - C++
добрый день, подскажите пожалуйста как можно переменную char* засунусь в массив char вот мой код, надо которым щас ломаю голову ...

Не могу найти функцию urlencode\urldecode - C++
Перерыл гугл, нашол одну рабочию, но она не работает с русскими символами, мб хто подскажит как можно исправить эту или где взять рабочию ...

Трехмерный массив char - C++
здравствуйте, вопрос такой: есть массив например char Aэлементов есть функция которая обращается к одному из элементов этого...

Массив int из char - C++
Как сделать массив int из троих char q,w,e ? Делаю int arr = {atoi(q),atoi(w),atoi(e) } Вылетает туча ошибок (

Многомерный массив char - C++
есть многомерный массив char arr есть 3 переменные char one, two, three с какими-то значениями char как правильно осуществить запись...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.03.2014, 23:37     Конвертировать массив char в UrlEncode #2
Цитата Сообщение от frolandr Посмотреть сообщение
и вот сразу получил такое задание
Как задание полностью звучит?

C++
1
char hexChars[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',0x00};
можно заменить на:
C++
1
char hexChars[] = "0123456789ABCDEF";
Цитата Сообщение от frolandr Посмотреть сообщение
C++
1
int idx = j >> 4; //Делим на 16
Не надо выпендриваться со сдвигом. Сделайте нормальное деление.

Цитата Сообщение от frolandr Посмотреть сообщение
C++
1
idx = ((int)Params[0][i]) & 0x0F; //Находим остаток от деления
Остаток от деление задается через оператор %. Тут же просто берется младший байт.
frolandr
0 / 0 / 0
Регистрация: 18.03.2014
Сообщений: 8
18.03.2014, 23:53  [ТС]     Конвертировать массив char в UrlEncode #3
Спасибо!
Частично заработало, символы латиницы преобразует, а кириллицу нет. К прмеру буква "а" должна быть преобразована к виду %E0, б в %E1 и т.д.
Ответ Создать тему
Опции темы

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