Zahl in Zahlwort umwandeln

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Include: Zahl in Zahlwort umwandeln


    Guten Abend,


    ich habe diese rekursive Funktion zum Umwandeln von Zahlen in Zahlwörter in Pawn umgesetzt: Klick
    Damit besteht die Möglichkeit, Zahlen in Zahlwörter umzuwandeln.
    Beispiele:


    2 -> "zwei"
    69 -> "neunundsechzig"
    137 -> "einhundertsiebenunddreißig"


    Nützlich z.B. für Roleplay-Chats oder um Serverwerbung schwerer lesbar zu machen, indem man die Zahlen in einer IP in Wörter umwandelt.


    Anwendung


    Datei einbinden:



    #include <num2text>



    new numstr[MAX_NUM_LEN];
    num2text(1337,numstr);
    print(numstr); // gibt "eintausenddreihundertsiebenunddreißig" aus


    Info: Die Umwandlung ist auf Zahlen zwischen -2.000.000.000 und 2.000.000.000 beschränkt, weil sonst die Werte der Zahlen anfangen zu spinnen (normalerweise sollte das erst bei Zahlen außerhalb von −2.147.483.648 bis 2.147.483.647 passieren, im Test ist das allerdings schon bei Zahlen mit nur annähernd großen Werten passiert, deshalb diese Grenze).


    Download


    Pastebin


    Download im Anhang


    LG
    pwnfl4sh

  • 1337 -> einsdreidreisieben


    Kannst du für alles mögliche benutzen, bspw. für eine Codeeingabe o.ä.

  • Das ist nicht ganz richtig, 1337 gibt "eintausenddreihundertsiebenunddreißig" au

    Ach stimmt, hatte ich vergessen :pinch:


    Denkst du es wäre möglich so ne Art 'Leetspeak' zu machen ? :D

  • Ach stimmt, hatte ich vergessen :pinch:


    Denkst du es wäre möglich so ne Art 'Leetspeak' zu machen ? :D


    Ja, du kannst die jeweiligen Umlaute durch Zahlen bzw. Sonderzeichen ersetzen.
    Dafür ist diese Include allerdings nicht gedacht: sie soll Zahlen zu Zahlwörtern konvertieren.



    Hier noch ein kleines Anwendungsbeispiel, um die Zahlen x-y in einem String zu ersetzen:


    Funktion "replace":



    stock replace(find[],replace[],string[],bool:ignorecase=false,length=sizeof(string))
    {
    new strpos;
    while((strpos = strfind(string,find,ignorecase)) != -1)
    {
    strdel(string,strpos,strpos+strlen(find));
    strins(string,replace,strpos,length);
    }
    return 1;
    }


    Zahlen ersetzen:



    new numstr[10], numword[MAX_NUM_LEN];


    for(new i = y; i >= x; i--)
    {
    valstr(numstr,i);


    if(strfind(string,numstr,true) != -1)
    {
    num2text(i,numword);
    replace(numstr,numword,string);
    }
    }


    Ersetzt die Zahlen x-y durch ihre Zahlwörter.



    LG

    Einmal editiert, zuletzt von pwnfl4sh () aus folgendem Grund: Fehlerkorrektur

  • Ist für Loginsysteme auch nützlich, man lässt eine random Zahl generieren, speichert diese in ner variable ab, setzt sie in einen String ("Gib die zahl %d in Buchstaben an:"), und macht das in einen Dialog, als "Anti-Account-Spam-Schutz" :D