Issue with STR and FLOAT

You want to convert from char to uint64_t, that is even simpler than the other way around.

char txt[] = "7023833275277351321";

char* dec(uint64_t n);
uint64_t cvttoull(const char *res);

void setup() {
  Serial.begin(115200);
  Serial.print(F("conversion from '"));
  Serial.print(txt);
  Serial.print(F("' results in "));
  uint64_t val = cvttoull(txt);
  Serial.print(dec(val));
  Serial.println();
}
void loop() {}

uint64_t cvttoull(const char *res) {
  uint64_t result = 0;
  while (*res) {
    result *= 10;
    result += *res++ - '0';
  }
  return result;
}

char* dec(uint64_t n) {
  static char Str[20];
  char* str = &Str[sizeof(Str) - 1];
  *str = '\0';
  do {
    char c = n % 10;
    n /= 10;
    *--str = c + '0';
  } while (n > 0);
  return str;
}
conversion from '7023833275277351321' results in 7023833275277351321