wenn du printf("%s\n", string); machst, was kommt denn raus? -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!
wenn ich mir den string so ausgeben lasse, dann bekomme ich:
Code:
"|"|
... eigentlich genau wie ich es wollte... beim compilieren kommt auch kein Fehler, aber sobald ich das Programm inklusiv des strings ausführe stürzt es ab... habe ich noch eine andere Möglichkeit den String anzugeben???
Bist du dir sicher, dass das am String liegt? Ich kann mir das nämlich nicht vorstellen. Finde mal raus, woran das liegt und poste mal die Stelle, an der das Programm abstürtzt. -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
Ich habe eine funktion 'ersetzen' geschrieben, die auf jeden Fall funzt... ich rufe diese funktion in meinem Programm so auf:
Code:
char * a = NULL; a = ersetzen("abc","123",string);
char *string = a;
diese funktion ersetzt wenn 'abc' im String string enthalten ist, dieses durch '123'.
anschließend will ich dann mit string weiterarbeiten, das funzt nicht... vielleicht liegt es auch an der zeile char *string =a; ??? Vielleicht ist die Konvertierung falsch??? Aber dann musste doch bereits ein Compilierfehler kommen... Ich bin ratlos...
Das liegt daran dass du mit der Zeile a = erstzen(...), einem nicht initialisiertem Zeiger einen String zuweisen willst.
wenn du char *a="irgendwas"; schreibst dann reserviert der Compiler automatisch den benötigten Speicherplatz. wenn du einfach nur cha*a; schreibst dann legt der Compiler nur einen Zeiger an, mit diesem kannst/musst du selber Speicher reservieren und später wieder freigeben.
du kannst aber auch char a[20], schreiben, womit du ein array für 20 zeichen inklusive 0 am ende anlegst. die 20 kannst du natürlich beliebig verändern.