Zeiger und Strings

MartinFS

Mitglied
Hallo,

ich kämpfe gerade mit Zeigern, komme da irgendwie nicht weiter.

Ich habe hier zwei cpp-Dateien, rufe aus der einen eine Funktion in der anderen auf um möchte als Rückgabewert einen String (egal ob Ansi oder char) erhalten.
Funktionieren tut das ja wohl nur über "Zeiger".
Heißt: Ich übergebe in der Parameterliste nicht den Wert des char Strings sondern die Adresse, was durch ein vorgestelltes '&' vor dem Parameter bewerkstelligt wird.
Aber wie kann ich dann in der aufgerufenen Funktion dem String einen Wert zuweisen?
Wird ein return <String>; durch den direkten Zugriff auf die Speicheradresse unnötig?

Danke.

gruß,
M.
 
Wenn Du noch anfügst ob Du von C (char - Arrays mit \0 als End-Indikator mit strnlen() strncat() strncpy() in string.h) oder C++ (mit std::string) redest können wir Dir gerne weiterhelfen.
 
Konsumierer hat gesagt.:
Bleibt trotzdem noch die Frage ob du strings aus der string.h benutzt oder standard char arrays.
Hallo,

verwende Standard char Array.

schaut in etwa so aus:

int anschluss = 1;
char wert[20];
aufruf(anschluss, wert);


Damit wird aufgerufen:

char aufruf(int anschluss, char wert)
{
char willichhaben = "Rueckgabewert"
strcpy(wert, willichhaben);

return 0;
}


/Edit: Nun funktioniert es aber. Hatte es zuerst mit char *wert; versucht, was aber irgendwie nicht wollte. Mit dem Array gab es nun keine Probleme.
 
Zuletzt bearbeitet:
moin


Code:
void zeichenanfügen(const char zeichen, char * string)
{
      strcat(string, zeichen);
}

.............

char *string;

cin<< string;

zeichenanfügen('!', string);

cout<< string;

Eingabe: Ausrufezeichen
Ausgabe Ausrufezeichen!

Ungetestet daher Fehler vorbehalten.
Hab dir übrigens ne PM geschrieben.


mfg
umbrasaxum
 
Zurück