🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #866

Re: Problem bei Funktion mit Rueckgabewert

#866
From: Rene Bothe
Date: Thu, 23 Nov 1995 14:16
124 lines
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!BwgA006
References: <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