Konwersja z dwu elementowego char do int

0

Jak zamienić 2 elementową tablicę char np
"01" na 1
"0A" na 10

Bez użycia funkcji z bibliotek operujących na string np strtoul.
Jest jakiś prosty sposób?

3

Prostym sposobem jest użycie biblioteki. Zbędnym utrudnianiem sobie możesz napisać funkcję:

int to_int(char (&arr)[2])
{
	return hex_digit_to_int(arr[0]) * 16 + hex_digit_to_int(arr[1]);
}

z hex_digit_to_int zdefiniowaną w ten sposób (tylko dla ascii, nie chce mi się bardziej wydziwiać):

int hex_digit_to_int(char c)
{
	if(c <= '9') return c - '0';
	if(c <= 'F') return c - 'A' + 10;
	if(c <= 'f') return c - 'a' + 10;
}
0

Dziękuję za odpowiedź. Działa idealnie.
Jednak chciał bym dokonać modyfikacji i zmieniać kilku elementowej tablicy wartość np AA0B0001 na wartość typu float. Oraz z float na char.
Da się tak zrobić bez użycia funkcji kopiujących, ogólnie operujących na stringach?

1 użytkowników online, w tym zalogowanych: 0, gości: 1