online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon Xardasdm vom 05.03.2021, 19:18 Options

Lösung

c++ quellcode problem variable aus buchstaben

hi ich habe ein kleines problem.
ich habe neulich wieder angefangen mir anhand eines buches c++ beizubringen. jetzt wollte ich ein programm schreiben (nur zur übung erstmal) das mich fragen soll wie ich heiße, dann gebe ich meinen namen ein (Xardas). wenn dies erfolgt ist soll er: "hallo Xardas" schreiben.
falls ich einen anderen namen eingebe soll er: "dich kenne ich nicht" ausgeben.

ich habe viele sachen probiert immoment ist mein quellcode so:

//bspl000dsa.cpp
#include <iostream>
using namespace std;

int main() {
int name;
cout << "\n Gib deinen Namen ein ";
cin >> name;
const_cast<int>(name) ;
if(name == "Xardas" || "xardas" || "XARDAS") {
cout << "\nHallo Xardas";
}
else {
cout << "dich kenne ich nicht" << name <<"!";
}
return 0;
}


ich benutze: microsoft Visual C++ 2008 Express Edition
mein compiler bringt aber folgende meldung anstatt zu kompilieren:


bspl000dsa.cpp
C:\Dokumente und Einstellungen\XardasDerMagier\Eigene Dateien\bspl000dsa.cpp(9)
: error C2440: 'const_cast': 'int' kann nicht in 'int' konvertiert werden
Diese Konvertierung ist eine gültige Standardkonvertierung, die implizit
oder mit dem static_cast-Operator oder mit einer Typumwandlung im C- oder Funkt
ionsformat durchgeführt wird
C:\Dokumente und Einstellungen\XardasDerMagier\Eigene Dateien\bspl000dsa.cpp(10)
: error C2446: '==': Keine Konvertierung von 'const char *' in 'int'
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
C:\Dokumente und Einstellungen\XardasDerMagier\Eigene Dateien\bspl000dsa.cpp(10)
: error C2040: '==': 'int' unterscheidet sich von 'const char [7]' in Bezug auf
die Anzahl vorgenommener Dereferenzierungen


wie löse ich das?? ich komme einfach nicht weiter.
ich hoffe ihr könnt mir helfen.
ich habe versucht den beitrag einigermaßen übersichtlich zu schreiben.
und habt bitte nachsicht ich fange erst an mit programmieren.
MFG Xardas


Antwort schreiben

Antwort 1 von Rowalind vom 05.03.2021, 19:47 Options

Hallo,

Deine Variable "name" hast Du als "int" deklariert.
int steht für Integer = Zahl,

richtig wäre:
char name[30]

Deklariert eine Stringvariable die maximal 29 Zeichen aufnehmen kann , die 30.Stelle bleibt für das Stringende reserviert "\0"

Dein Vergleich if (name == "X......") funktioniert so auch nicht,
schau Dir dazu die Funktion "StrComp" an.

Gruß Rowalind

Antwort 2 von Xardasdm vom 05.03.2021, 20:26 Options

erstmal vielen dank für die schnelle antwort!
jetzt habe ich das problem dass ich zu strcomp nicht allzuviel finde
ich habe jetzt meinen text in folgendes umgeändert:


//bspl000dsa.cpp
#include <iostream>
using namespace std;

int main() {
char name[30];
cout << "\n Gib deinen Namen ein ";
cin >> name;
if(strcomp(name, "Xardas" || "xardas" || "XARDAS")) {
cout << "\nhallo Xardas";
}
else {
cout << "dich kenne ich nicht" << name <<"!";
}
return 0;
}



jetzt sagt mein compiler:

bspl000dsa.cpp
C:\Dokumente und Einstellungen\XardasDerMagier\Eigene Dateien\bspl000dsa.cpp(9)
: error C3861: "strcomp": Bezeichner wurde nicht gefunden.

ich verstehe es nicht bitte um hilfe^^
mfg Xardas

Antwort 3 von krankussy vom 05.03.2021, 21:10 Options

Hi,
also diese Zeile if(strcomp(name, "Xardas" || "xardas" || "XARDAS")) {
is quatsch der syntax dürfte so nicht richtig sein.

wenn du den namen als string im char array anlegst kannst du meiner meinung nach einfach so abprüfen wie du im ursprünglichen Programm gemachst hast.

Antwort 4 von Xardasdm vom 05.03.2021, 21:23 Options

hmm jetzt verstehe ich garnichtsmehr : )
wie müsste die char array mit string denn aussehen/ string ist mor nämlich völlig unbekannt

Antwort 5 von Rowalind vom 05.03.2021, 22:05 Options

Hallo,

if(name == "Xardas")
vergleicht nur das erste Zeichen des String Arrays

richtig wäre

int iResult;

iResult = StrComp(name, "Xardas")
if(iResult == 0)
{
cout << "\nhallo Xardas";
}
else
{
cout << "dich kenne ich nicht" << name <<"!";
}

Du solltest Dir neben den Variablentypen die es so gibt auch die Stringbehandlung ansehen.

Ansonsten wünsche ich Dir viel Geduld und gib nicht auf das wird schon noch.

Gruß Rowalind

Antwort 6 von Xardasdm vom 05.03.2021, 22:14 Options

ich habe jetzt das:

//bspl000dsa.cpp
#include <iostream>
using namespace std;

int main() {
char name[30];
cout << "\n Gib deinen Namen ein ";
cin >> name;

int iResult;

iResult = StrComp(name, "Xardas");
if(iResult == 0)
{
cout << "\nhallo Xardas";
}
else
{
cout << "dich kenne ich nicht" << name <<"!";
}
return 0;
}




ihm fehlt immernoch der bezeichner für StrComp
was muss ich tun?

Antwort 7 von Rowalind vom 05.03.2021, 22:42 Options

Hallo,

ich schreibe mit dem Borland Compiler.

Eventuell ist es bei Microsoft anders.
Einfach mal in der Hilfe nachsehen.


Gruß Rowalind

Antwort 8 von Rowalind vom 05.03.2021, 23:08 OptionsLösung

Lösung
Hallo,

so sollte es bei Dir auch funktionieren

#include <string.h>
iResult = strcmp(name, "Xardas");


Gruß Rowalind

Antwort 9 von Xardasdm vom 06.03.2021, 13:40 Options

danke jetzt gehts sehr nett von dir!
mfg Xardas

Ähnliche Themen

Batch-Programmierung: Dateinamen mit Variable versehen
Paulo87  20.09.2007 - 186 Hits - 4 Antworten

delphi variable genauer formulieren.
Shintaro12000  20.12.2007 - 81 Hits - 2 Antworten

Buchstaben in Dual/binär system übersetzen
Schamhorst  16.12.2007 - 164 Hits - 7 Antworten

VB6 Variable in anderen Sub übergeben
da_horscht  28.11.2009 - 99 Hits - 6 Antworten

Quellcode in C++ übersetzen
MarcoOoOo  04.01.2009 - 97 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026