Wie kann man ein CHAR string zurückgeben?
-
Also klingt zwar seltsam aber ich habe ein Problem.
Wie kann ich ein Char String aus einer Funktion zurückgeben?Ich habe ein String.
zb char name[255]="Das soll bearbeitet werden";Den ich an eine Funtion übergebe, den dort bearbeite und wieder an das Hauptprogramm zurückgeben will.
Nur der wird nie überarbeitet zurück gegeben.
Nun hatte ich 2 Lösungswege überlegt:
1.Inline Funktion
2.Alles per Referenzen zurückgeben,und die Werte wieder zu ein String formen.Und noch eine Frage kann ich wenn ich in einer Funktion ein fstream aufmache,den an eine andere Fuktion weitergeben? bzw. wie kann ich sowas?
-
Sicher geht das, zeig doch mal deine Funktion und deren Aufruf.
mfg JJ
-
the_hero99 schrieb:
Also klingt zwar seltsam aber ich habe ein Problem.
Wie kann ich ein Char String aus einer Funktion zurückgeben?Ich habe ein String.
zb char name[255]="Das soll bearbeitet werden";Den ich an eine Funtion übergebe, den dort bearbeite und wieder an das Hauptprogramm zurückgeben will.
Nur der wird nie überarbeitet zurück gegeben.
Wenn du ein char Array übergibst, dann bearbeitst du doch die Werte des Arrays.
Wenn du es unbegingt wieder zurückgeben willst, dann mach es so:char *foo(char *p, int size) { p[0] = 'H'; // Hier char-Array bearbeiten return p; }
Nun hatte ich 2 Lösungswege überlegt:
1.Inline FunktionInlining bringt dir hier garnichts.
Und noch eine Frage kann ich wenn ich in einer Funktion ein fstream aufmache,den an eine andere Fuktion weitergeben? bzw. wie kann ich sowas?
Per call by referenz, da fstream keinen passenden Copy-Constructor hat:
void foo(fstream& f);
-
fettes thx
meine funktion sieht so aus.
int funktion(char name[255]) { //hier mach ich was mit den string return name; //vorher war return immer 0; }
Name war danach immer leer bzw hatte falsche Werte.
Ich benutze den Borland c Builder 5.X Enterprise.
-
the_hero99 schrieb:
fettes thx
meine funktion sieht so aus.
int funktion(char name[255]) { //hier mach ich was mit den string return name; //vorher war return immer 0; }
Name war danach immer leer bzw hatte falsche Werte.
Ich benutze den Borland c Builder 5.X Enterprise.
Kann mir nicht vorstellen, dass sich das compilieren lässt. Du versuchst hier quasi einen "char pointer" auf int zu casten. Warum gibst du nicht char* durch, wie ich es vorhin bereits geschrieben habe?