ein Zeichen einfügen in char*...?



  • Hallo, ich habe ein Problem und komme nicht weiter...

    ich habe eine Zeichenkette vom Typ char*. Diese sieht etwa so aus:

    char* msg="Error in module XXXXXXXXXX.";
    

    Dieses "XXXXXXXXXX" soll später durch einen 10-Zeichenlangen Modulnamen ersetzt werden. Wie kann ich das machen? - Habe versucht über Index zuzugreifen, klappt aber nicht... da bekomme ich dann die Meldung zurück, dass Prozess "read" auf einem Speicher fehlschlug... das habe ich etwa so gemacht:

    for(int i=0;i<10;++i)
    msg[i+16]=mname[i];
    

    Gibt es noch weitere Möglichkeiten?

    Hinweis: Ich weiß, dass man das mit Strings machen könnte, aber genau das will ich gerade meiden, denn das macht mein Programm dann gleich wieder riedengroß... so ist es zurzeit 20KB groß, mitString ist es dann gleich 420KB groß... also eher nicht so dafür ^^



  • gibt da glaub ich keine Funktion für..
    ich würde einfach 2 Zeichenketten draus machen die du aneinander hängst..



  • Nunja, und wie hänge ich mehrere aneinander?



  • Hallo,

    das Initialisieren eines Zeigers auf char (char*) mit einer Zeichenkette macht diese nur-lesbar, der Vorgang "write" (nicht "read"!) auf dem Speicher, auf den dieser Zeiger zeigt, sollte also fehlschlagen. ⚠
    Um die Zeichenkette noch verändern zu können, sollte ein Array

    char msg[];
    

    mit der Zeichenkette initialisiert werden 👍. Die Arraylänge wird dann automatisch vom Compiler ermittelt, verlängern lässt es sich dann nicht mehr, aber das ist ja in dem angeführten Quelltext auch gar nicht nötig. Hoffentlich sind diese Informationen zur Lösung dieses Problems hilfreich ;).

    Mit freundlichen Grüßen

    ISO-C-Programmierer



  • Nunja, das Problem ist folgendes: Ich habe viele Zeichenketten, wie etwa

    eins
    zwei
    drei
    vier
    fünf
    sechs
    sieben
    acht
    neun
    

    und dann noch

    zehn
    elf
    zwölf
    dreizehn
    vierzehn
    fünfzehn
    sechzehn
    siebzehn
    achtzehn
    neunzehn
    

    und so weiter, bis neunundneunzig. Ich möchte ein Programm schreiben, das z.B. Zahlen als Wörter ausgeben kann, etc. Nun kann man sich vorstellen, wie aufwendig es ist aus 5137463956438 fünfbillioneneinhundertsiebenunddreißigmilliardenvierhundertdreiundsechzigmillionenneunhundertsechsundfünfzigtausendvierhundertachtunddreißig zu machen...


Anmelden zum Antworten