coolkaiserabc
Goto Top

C++ String in Funktion

Hallo Ich würde gern eine Funktion schreiben die mir einen string "wert" setzt. So hab ich es geschrieben (sieh unten). Leider funktioniert es nicht was mach ich falsch?
(Alles was ich in C++ gelernt habe habe ich selbst erlesen, daher bitte nicht haten wenn ich etwas sehr offensichtliches nicht verstehe. Ich versuch im Moment es mir selbst zu erlernen )

#include <iostream>
using namespace std;

string feld(int x)
{
	string y = 0;

	switch(x)
	{
	case 1:
	y = "Test";  
	break;

	case 2:
	y = "Test 2";  
	break;

	default:
	y = "Error";  
	break;

	}
	return y;
}

int main()
{
	int x= 0;
	string z = "0";    // Wurde nachträglich nach 1.Antowrt EDITIERT  

	cin >> x;

	z = feld(x);     // Wurde nachträglich nach 1.Antowrt EDITIERT
	cout << z;
}

beim compilieren gibt es kein Problem, aber beim ausführen sieh Bild
cpp fehler

Bin über jede konstruktive Hilfe sehr dankbar (=

Content-Key: 364768

Url: https://administrator.de/contentid/364768

Printed on: April 25, 2024 at 20:04 o'clock

Member: emeriks
emeriks Feb 14, 2018 updated at 13:21:20 (UTC)
Goto Top
Hi,
bin jetzt kein C++ Experte, aber spontan würde ich sagen ist der Fehler im
feld(x) = z;
Statt dessen
z = feld(x);

E.

Edit:
Und würde eine String-Variable auch explizit mit einem String initialisieren, also nicht z = 0 sondern z = "0".
Member: coolkaiserABC
coolkaiserABC Feb 14, 2018 updated at 13:28:16 (UTC)
Goto Top
OMG ist das offensichtlich falsch von mir xDDDD (hab es jetzt im CODE oben geändert)

aber leider auch ausgebessert funktioniert es nicht, ich kann zwar jetzt die Zahlen eingeben aber leider kommt die selbe Fehlermeldung wie auf dem Bild .... wo kann da der Fehler liegen?
Member: emeriks
Solution emeriks Feb 14, 2018 at 13:26:52 (UTC)
Goto Top
Mach mal
string y = "0";
statt
string y = 0;
Member: emeriks
Solution emeriks Feb 14, 2018 at 13:28:16 (UTC)
Goto Top
Ansonsten die Fehlermeldung einfach bei Google eingeben:
_s_construct null not valid
Member: coolkaiserABC
coolkaiserABC Feb 14, 2018 at 13:29:33 (UTC)
Goto Top
Danke.... das wars....

Herzlichen Dank für deine Hilfe
Member: Arano
Arano Feb 14, 2018 updated at 20:20:18 (UTC)
Goto Top
Hallo,

Ich bin auch weit von dem Experten weg aber hier war mir so also ob...
Und würde eine String-Variable auch explizit mit einem String initialisieren, also nicht z = 0 sondern z = "0".
"string" ist hier ja KEIN Standard-Datentyp (char/int/bool) sondern eine Klasse, eine Klasse die intern char#s verarbeitet.
C++-Reference - String
default (1) string();
...
(1) empty string constructor (default constructor)
Constructs an empty string, with a length of zero characters.
Durch den Konstruktor der Klasse, muss (in diesem Fall) also keine Zeichenkette zur Initialisierung übergeben werden, weil die Klasse "sich selber" mit "leer" initialisieren kann.

// vim: set ts=4:
#include <iostream>
#include <string>

int main( void )
{
        //std::string t("Administrator.de"); 
        //std::string t = Administrator.de"; 
        std::string t;
        // t = "Administrator.de"; 
        std::cout << t.length() << " " << t << << "." << std::endl;  
        // Ausgabe: "0 ." 

        return 0;
}


Und deine Lösung war ?
Das Vergessen das Headerfile zu inkluden !?
#include <string>


~Arano
Member: coolkaiserABC
coolkaiserABC Jun 27, 2018 at 07:32:49 (UTC)
Goto Top
nein die " Gänsefüßchen ...... ich schäme mich eh schon...