AnsiString().sprintf Formatzeichen %C Auswahlmöglichkeiten
-
Hallo,
gibt es bei dem sprintf Formatzeichen %C eine Auswahlmöglichkeit welche Zeichen dargestellt werden sollen und welche durch ein ausgewähltes Zeichen
dargestellt werden.
Z.b. die ASCII Zeichen 0-9 sowie a-z sollen ausgegeben werden, alle anderen
sollen als "." dargestelllt werden.
-
Nein, das musst du selber programmieren, aber so schwer ist das nicht.
char c = ???; char buffer[???]; sprintf(buffer, "%c", ((c >= '1' && c <= '9') || (c >= 'a' && c <= 'z')) ? c : '.');
-
unsigned char c = 0x31; StringGrid1->Cells[17][1] = AnsiString().sprintf("%C",((c >= '1') && (c <= '9') || (c >= 'a' && c <= 'z')) ? c : '.');
Erscheint in der Celle "1"
unsigned char c = 0xaa; StringGrid1->Cells[17][1] = AnsiString().sprintf("%C",((c >= '1') && (c <= '9') || (c >= 'a' && c <= 'z')) ? c : '.');
Erscheint in der Celle"."
Man sollte den Ausdruck "? c : '.'" da es nicht jedem
geläufig ist genauer erklären.
Wenn das Ergebniss in der vorherigen Klammer"",((c >= '1') && (c <= '9') || (c >= 'a' && c <= 'z'))"true ist, wird der linke Ausdruck von dem ":" zur Ausgabe gebracht, sonst der rechte "."!Danke für die Hilfe.
-
hermes schrieb:
Man sollte den Ausdruck "? c : '.'" da es nicht jedem
geläufig ist genauer erklären.ich weiß nicht, ob du es weißt, bin aber davon ausgegangen, aber egal.
conditional_expression : logical_or_expression | logical_or_expression '?' expression ':' conditional_expression ;
heißt, wenn conditional_expression oder ogical_or_expression erfüllt sind (etwa TRUE oder eine Zahl ungleich 0 zurückliefern), dann wird das ausgeführt, was hinter dem ? sich befinden, was eine expression sein muss; sonst wird das, was hinter : sich befindet ausgeführt, was eine conditional_expression kann (muss)
-
Das ganze auf deutsch:
a?b:c
ist äquivalent zuif(a) b; else c;