Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Конвертация char в ASCII код; c

Автор: oldhuman
Дата сообщения: 24.07.2003 11:31

Нужно сложить последовательность байтов без переноса разрядов(например 0x30, 0x31, 0x32, 0x00) т.е. если получится сотенное число, то просто откинуть первый знак,
затем преобразовать каждый знак в ascii код. На примере данной последовательности получается: сумма - 93, 9 - 0x39, 3 - 0x33. А вот на практике не особо-то получается...

char calc(char * cmd)
{
char out;

for(int i; i < strlen(cmd); i++)
{
out += cmd[i];
}
return out;
}

void main()
{
char cmd[4] = {0x30, 0x31, 0x32, 0x00};
printf("%02X",calc(cmd));
while(!_kbhit());
}
Автор: woffer
Дата сообщения: 24.07.2003 11:47
oldhuman а чего инклуды не поставил ? неудобно же


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

unsigned char calc(unsigned char *cmd)
{
unsigned char out = 0;

for(unsigned int i=0; i <= strlen((const char*)cmd); i++)
{
out += cmd[i];
}
return out;
}

int main(int argc, char* argv[])
{
unsigned char cmd[] = {0x30, 0x31, 0x32, 0x00};

unsigned char ch = calc(cmd);

printf("\n%X",ch);

unsigned char dig[2];

dig[0] = ch / 16;
dig[1] = ch % 16;

printf("\n%X %X",dig[0],dig[1]); // hex
printf("\n%c %c",dig[0],dig[1]); // ascii

getch();

return 0;
}
Автор: oldhuman
Дата сообщения: 24.07.2003 12:02
woffer
error C2664: 'calc' : cannot convert parameter 1 from 'unsigned char [4]' to 'char *'

А в ascii то как ковертировать?
Автор: woffer
Дата сообщения: 24.07.2003 12:37
oldhuman


Цитата:
error C2664: 'calc' : cannot convert parameter 1 from 'unsigned char [4]' to 'char *'

Компилятор какой ?
Автор: oldhuman
Дата сообщения: 24.07.2003 12:44
woffer
Microsoft Visual C++
Автор: woffer
Дата сообщения: 24.07.2003 13:17
oldhuman

Цитата:
Microsoft Visual C++

Ага, уже вижу
Прогнал я тебе с sizeof, это не корректно и везде работатать не будет.
Подредактированный вариант в моем первом посте.
Автор: oldhuman
Дата сообщения: 24.07.2003 13:47
Огромное спасибо!!!
Автор: woffer
Дата сообщения: 24.07.2003 15:27
На здоровье -)

Страницы: 1

Предыдущая тема: Можно ли на SQL добавлять несколько записей в одном запросе


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.