How to make String of hex into array of int?

String input = "AA BB CC DDAABBCCDD";

byte data[100];
size_t dataIndex = 0;

void setup()
{
  Serial.begin(115200);
  delay(200);

  convert(input);

  for (size_t i = 0; i < dataIndex; i++)
  {
    Serial.print(data[i], HEX);
    Serial.print(' ');
  }
  Serial.println();
}

void convert(String hexstring)
{
  int length = hexstring.length();
  size_t digitCount = 0;

  for (int i = 0; i < length; i++)
  {
    char digit = hexstring[i];
    byte nybble = 99;

    if (digit >= '0' && digit <= '9')
    {
      nybble = digit - '0';
    }
    else if (digit >= 'A' && digit <= 'F')
    {
      nybble = digit - 'A' + 10;
    }
    else if (digit >= 'a' && digit <= 'f')
    {
      nybble = digit - 'a' + 10;
    }
    else
      nybble = 99;

    if (nybble == 99)
    {
      // Non-digit
      if (digitCount > 0)
      {
        // There was one digit in this byte already
        dataIndex++;
        data[dataIndex] = 0;
        digitCount = 0;
      }
    }
    else
    {
      // Hex Digit
      data[dataIndex] <<= 4;  // Make room for a new low digit
      data[dataIndex] += nybble;
      digitCount++;
      if (digitCount == 2)
      {
        // This byte is full
        dataIndex++;
        data[dataIndex] = 0;
        digitCount = 0;
      }
    }
  }
}

void loop() {}