Funktionen mit Arrays
-
Hallo,
ich sitze grade vor einer Aufgabe, allerdings komme ich nicht wirklich weiter.
Hier erst mal die Aufgabe:Schreiben Sie eine Funktion, die eine Zeichenkette "Quelle" in eine neue Zeichenkette "Ziel" kopiert. Die Funktion muss wie folgt deklariert sein: void Kopie (char[], char[])
Beispielausgabe:
Variablenname "Quelle": Hallo
Variablenname "Ziel": Hallo
Hier mein Programm:
#include <iostream>
using namespace std;
void kopie(char=q[],char=z[])
{
for(int i=0; q[i]!='\0';i++)
{
z[i]=q[i];
}
}int main()
{
char quelle[6];
char ziel[]=" ";cout<<"Geben sie eine Zeichenkette mit max. 5 Zeichen ein: "<<endl;
cin>>quelle;
cout<<endl;cout<<"Ihre Eingabe lautet:\t"<<kopie(quelle[6],ziel[]);
return 0;
}Wenn ich das Programm, ohne Funktion erstelle wird alles kopiert wie es sein soll, aber mit funktion schaffe ich es einfach nicht.
Ich hoffe ihr könnt mir weiterhelfen.

-
1. Wie viel Platz hast du in ziel zur Verfügung?
Könnte man mit Code-Tags besser sehen. Aber ich zähle nur 4 Leerzeichen.
Eine genaue Angabe wie bei quelle ist da besser.coutgibt den Rückgabewert von kopie aus.
Nun hat aber kopie keinen Rückgabewert.
3. Der Funktionskopf mit den = sieht für mich merkwürdig aus.
^Oder ist ds ein Feature von C++?^
-
DirkB schrieb:
1. Wie viel Platz hast du in ziel zur Verfügung?
Könnte man mit Code-Tags besser sehen. Aber ich zähle nur 4 Leerzeichen.
Eine genaue Angabe wie bei quelle ist da besser.coutgibt den Rückgabewert von kopie aus.
Nun hat aber kopie keinen Rückgabewert.
3. Der Funktionskopf mit den = sieht für mich merkwürdig aus.
^Oder ist ds ein Feature von C++?^zu 1.
Wenn ich eine genau Angabe wie bei qulle[6] mache, kommt immer eine Fehlermeldung, deswegen habe ich das mit " " gemacht.Laut einen Tutorial von Youtube benutzt man bei void kein return ?
ich bin mir nicht sicher, ich habe es einfach so probiert, weil es in der Aufgabe auch so stand.

-
Hardcor3chip schrieb:
Laut einen Tutorial von Youtube benutzt man bei void kein return ?
Doch da nutzt man auch
return;. Was man da nicht nutzt istreturn value;
-
Hardcor3chip schrieb:
DirkB schrieb:
coutgibt den Rückgabewert von kopie aus.
Nun hat aber kopie keinen Rückgabewert.
Laut einen Tutorial von Youtube benutzt man bei void kein return ?
Ich denke, Dirk möchte wissen, was Du Du Dir bei dieser Zeile gedacht hast:
cout<<"Ihre Eingabe lautet:\t"<<kopie(quelle[6],ziel[]);Die Ausgabe des Rückgabewerts nach
coutergibt doch keinen Sinn, wennkopie()gar keinen Rückgabewert hat, oder?Übrigens kannst Du Deinen ersten Beitrag editieren und die fehlenden Codetags nachträglich einfügen - dann sieht's ordentlicher aus. (Code markieren und den C++ Button unter den Smilies betätigen.)
-
out schrieb:
Hardcor3chip schrieb:
Laut einen Tutorial von Youtube benutzt man bei void kein return ?
Doch da nutzt man auch
return;. Was man da nicht nutzt istreturn value;Auch in solchen Funktionen kann
return value;verwendet werden (der Typ von value muss dann nat. void sein). Ausserhalb von Funktionstemplates allerdings kaum nützlich. In C dagegen ist es tatsächlich verboten.
-
Hardcor3chip schrieb:
zu 1.
Wenn ich eine genau Angabe wie bei qulle[6] mache, kommt immer eine Fehlermeldung, deswegen habe ich das mit " " gemacht.Die genaue Fehlermeldung kann da weiterhelfen. Das steht nicht einfach nur Error.
Der Compiler sagt ziemlich genau, was im missfällt.Hardcor3chip schrieb:
Laut einen Tutorial von Youtube benutzt man bei void kein return ?
Dann ist entweder das
voidverkehrt oder der Aufruf der Funktion beimcout.