Hilfe Text zu bekommen und bearbeiten



  • Hallöle,
    ich habe ei Projekt gestartet (ein Clientside Plugin für ein Spiel *unwichtig*) und möchte nun folgendes erreichen:
    Der Plugin soll einen Namen so verarbeiten, sodass ein bestimmtes Zeichen durch ein anderes Zeichen replaced wird.
    Den namen hab etc. hab ich schon brauche halt nur wenig Hilfe um meine Ideen in die Tat umzuwandeln.
    Name wird als "char" gespeichert.

    Hier noch ein Beispiel, falls man mich nicht ganz verstanden hat:

    char name[128];
    name = "Der Name";
    //im Namen soll das erste "e" oder von mir aus alle "e"s zu ein "i" werden
    
    name = "Dir Nami"; //verarbeitet
    
    //Die "Vorlage" sieht so aus (ohne Verarbeitung):
    sprintf(name ,"%s", QUELLE);
    

    Hoffentlich bin ich im richtigen Board. Danke!



  • Hoffentlich bin ich im richtigen Board. Danke!

    Leider nein. Bitte ins c-Forum verschieben...



  • fatman44 schrieb:

    Hoffentlich bin ich im richtigen Board. Danke!

    nein ... C++/CLI != C ... bin aber gerade etwas frustriert - daher

    void replace(char *name, char alt, char neu)
    {
       for(int i = 0; i< strlen(name); i++) name[i] = (name[i] == alt[i] ? neu[i] : name[i]);
    }
    
    // call
    replace(name, 'e', 'i');
    

    ungetestet ... aber so sollte es gehen

    hand, mogel



  • Hallo,
    danke erstmal für deine Antwort. Da war ein Fehler drinne, welchen ich so berichtigt habe:

    void replace(char *name, char alt[1], char neu[1]) 
    { 
       for(int i = 0; i< strlen(name); i++) name[i] = (name[i] == alt[i] ? neu[i] : name[i]); 
    }
    

    Folgender Fehler:
    c:\Users\BruteNine\Desktop\hacks\multiREAKT\bullet\css hack\CAimkbot.cpp(225): error C2664: 'replace' : cannot convert parameter 2 from 'char' to 'char []'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast



  • oh sry.... nicht dass ihr denkt meine probleme sind gelöst ... der letzte fehler ist die aktuelle ... 😃



  • deine Lösung ist falsch ... damit stürzt Dir ggf. Dein Programm ab, weil Du ein Array von einem Element bekommst - aber auf mehrere Elemente zugreifst (-> Zeigeraritmetik)

    void replace(char *name, char alt, char neu)
    {
       for(int i = 0; i< strlen(name); i++) name[i] = (name[i] == alt ? neu : name[i]);
    }
    

    das dürfte jetzt besser passen, mogel



  • ja also da funktioniert, danke dafür ... aber da ist noch was komisches:
    unszwar wenn ich im spiel den namen MANUEL eintippe und ein zeichen mit dem ascii von (Alt+255 = so ähnlich wie ein leerzeichen) austausche funktioniert alles normal ... doch mit dem replace code kommt sowas hier: "�" .. ich habe das zeichen DIREKT kopiert und hier eingefügt .. das heißt ihr könnt analysieren was das genau für ein zeichen ist und mir villeicht ja das problem sagen 😃 DANKE!



  • Alt+255 ist kein Leerzeichen sondern normalerweise ein keines y (Ypselon) mit ü-Punkten obendrauf [ÿ] es ist. Und schon garnicht ASCII (was nur bis 127 geht).



  • falsch!
    alt+255 ist ein zeichen, welches man kaum von einem leerzeichen unterscheiden kann ... was du meinst ist alt+0255


Anmelden zum Antworten