Article View: de.comp.lang.c++
Article #866Re: Problem bei Funktion mit Rueckgabewert
From: Rene Bothe
Date: Thu, 23 Nov 1995 14:16
Date: Thu, 23 Nov 1995 14:16
124 lines
3633 bytes
3633 bytes
In article <70@silence.gerwin.net>,
macgoetz@silence.gerwin.net (Markus Goetz) wrote:
>Hallo !
>Wie ist es moeglich, Variablen, die im Hauptprogramm erzeugt wurden
>durch eine Funktion (mit Rueckgabewert) zu veraendern und im
>Hauptprogramm wieder zu benutzen ? Ich habe mir da schon was
>zurecht gebastelt, doch war dies nicht so der bringer.. :-(
>
>Danke fuer jeden Tip im vorraus..
>
>Markus_sammelt_Erfahrung
>
>
Hallo Markus,
ich baue Dir mal die einfachste Moeglichkeit in Deinen Code ein.
>
>#include <conio.h>
>#include <stdlib.h>
>#include <stdio.h>
>#include <iostream.h>
>#include <string.h>
>
>//Funktionsprototypen
>//char TextDrehen(char *);
char * TextDrehen(char *);
>
>// Hauptprogramm
>void main(void)
>{
> char *textzeile, zeile[80], *Gedreht;
>// int zahl;
>
> cout << "Textzeile : ";
> cin >> zeile;
>
> textzeile = zeile;
> cout << "Die Textzeilenlänge beträgt " << strlen(zeile) << "Zeichen." << endl;
>
> //TextDrehen(textzeile);
textzeile = TextDrehen(textzeile);
>
> cout << "** Hauptprogramm.." << endl;
> printf("%s\n",zeile);
> cout << textzeile << endl;
> getch();
>
>}
>
>//char TextDrehen(char *zeiger)
char * TextDrehen(char *zeiger)
>{
> int i, l;
> //char NeueZeile[80], gedreht[80], *rueckgabezeiger;
char NeueZeile[80], *rueckgabezeiger;
static char gedreht[80]; // 'static' besser wegen der // Gueltigkeitsdauer des Speicherbereiches
>
> strcpy(NeueZeile,zeiger);
>
> l = strlen(zeiger);
>
> strcpy(gedreht,NeueZeile);
>
> for (i=0 ; i <= l-1; i++)
> gedreht[l-i-1] = NeueZeile[i];
>
> rueckgabezeiger = gedreht;
> cout << "Inhalt von Zeiger : " << rueckgabezeiger << endl;
> //return *rueckgabezeiger;
return rueckgabezeiger;
>}
>
>
Es gibt allerdings auch noch die Moeglichkeit der Uebergabe von Eingangs- und
Ausgangsparametern:
int main (void);
int TextDrehen (char *pszIn, char *pszOut);
int main (void)
{
char szZeile[80], szZeileGedreht[80];
int nReturn;
cout << "Textzeile : ";
cin >> szZeile;
cout << "Die Textzeilenlänge beträgt " << strlen(szZeile) << "Zeichen." << endl;
nReturn = TextDrehen (szZeile, szZeileGedreht);
cout << "** Hauptprogramm.." << endl;
cout << "Originalzeile: " << szZeile << endl;
cout << "gedrehte Zeile: " << szZeileGedreht << endl;
getch();
}
int TextDrehen (char *pszIn, char *pszOut)
{
int i, l;
l = strlen (pszIn);
for (i=0 ; i <= l-1; i++)
pszOut[l-i-1] = pszIn[i];
pszOut[l] = '\0'; // String abschliessen
cout << "Inhalt von pszOut : " << pszOut << endl;
return 0;
}
Ich hoffe diese Anregungen helfen Dir.
Tschuess Rene
______________________________________________________
Rene Bothe,
Gesellschaft für Systemtechnik und Softwareentwicklung
Bereich Verkehrssysteme (GSSE-VS)
Ackerstrasse 22, D-38126 Braunschweig (Germany)
Tel.: +49 531 226 3515, Fax.: +49 531 226 4879
E-Mail: bothe@gsse.sni.de
Technical Details
Message-ID:
<491ahk$nr@siunix1.gsse.sni.de>Path:
arc1-ca.pugleaf.net!siunix1.gsse.sni.de!BwgA006References:
<70@silence.gerwin.net>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!siunix1.gsse.sni.de!BwgA006 From: bothe@gsse.sni.de (Rene Bothe) Newsgroups: de.comp.lang.c++ Subject: Re: Problem bei Funktion mit Rueckgabewert Date: Thu, 23 Nov 95 14:16:33 GMT Organization: Gesellschaft für Systemtechnik und Software-Entwicklung Braunschweig Message-ID: <491ahk$nr@siunix1.gsse.sni.de> References: <70@silence.gerwin.net> NNTP-Posting-Host: 202.9.61.52 X-Newsreader: News Xpress Version 1.0 Beta #3