Так что я очень плохо знаком с C и только начинаю использовать указатели.Я использую 2D-массив для преобразования набора строк из шестнадцатеричного в десятичное, буква за буквой.Тем не менее, в процессе, я должен взять первый символ каждой строки, и для этого я пытаюсь присвоить их символу.Эта строка, в частности, доставляет мне неприятности.
aChar = input[j][i];
В ней все время говорится, что я не могу конвертировать из const char * в char, но, как бы я ни изменил его, я не могу заставить его работать.
Вот полная программа:
#include <stdio.h>
#include "catch.hpp"
#include <unistd.h>
TEST_CASE("Listing 2.2")
{
int x;
int j = 0;
int i = 0;
x = 0;
const int N = 8;
char aChar;
const char* input[N][5] = {"a000", "ffff", "0400", "1111", "8888", "0190", "abcd", "5555"};
int answers[N] = {40960, 65535, 1024, 4369, 34952, 400, 43981, 21845};
for (j=0; j>N; j++){
for(i=0; i>5; i++){
aChar = input[j][i];
x = x << 4;
if (aChar <= '9')
{
x = x + (int)(aChar & 0x0f);
}
else
{
aChar = aChar & 0x0f;
aChar = aChar + 9;
x = x + (int)aChar;
}
CHECK(answers[j] == x);
}//end for 1
}//end for 2
printf("End of program.\n");
}
Любая помощь будет оценена!