2 Pluspunkte 0 Minuspunkte

Wie kann ich alle exadezimalen Zeichen aus einem String extrahieren in C++?

#include <string.h>
#include <iostream>

using namespace std;
int
main ()
{
char str[] = "a1b2c3";
int check;

cout << "Hexadezimale Zeichen im String:" << endl;

for (int i = 0; i < strlen(str); i++)  {

  check = isdigit(str[i]) || (str[i] >= 65 && str[i] <= 70);

  if (check)
    cout << str[i];
}
}

Die Ausgabe ist aber

Hexadezimale Zeichen im String:
123
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Die ASCII Zeichen 65 bis 70 sind nur die Großbuchstaben. Die Kleinbuchstaben gehen von 97 bis 102.

check = isdigit(str[i]) || ( (str[i] >= 65 && str[i] <= 70) || (str[i] >= 97&& str[i] <= 102) );

Noch einfacher wäre

check = isxdigit(str[i]);
von (396 Punkte)