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 zu

    if(a)
      b;
    else
      c;
    

Anmelden zum Antworten