Zahl in Zahlwort umwandeln

  • 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.ä.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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