Inhalt char-Array
-
Morgen...
ich hätte da ein kleines problem mit dem überprüfen von einem bestimmten element eines char-arrays:
hier mal der code:
{ #include <iostream.h> #include <fstream.h> char i[4]; cin>>i; //ich geb ein z.b. 1003 cout<<i[3]; //hier gibt er mir 3 raus if (i[3] = 2) { cout<<"Richtig"<<endl; return 0; } else { cout<<"Falsch"<<endl; return 0; } }Das problem iss jetzt, dass er mir den inhalt vom 3. element richtig ausgibt, er aber irgendwie die if-Überprüfung nicht richtig macht...egal welche zahl im 3. Element steht er gibt immer "Richtig" an...
Wo liegt denn hier der Fehler, könnt ihr mir da bitte weiter helfen...
Merci
Grüße EOF
-
Vergleich mit ==, = ist eine Zuweisung.
-
Ok hab ich geändert...geht aber trotzdem nich...
jetzt springt er mir immer zu "Falsch", egal ob die 3. zahl 2 ist oder nich...
-
EOF schrieb:
Ok hab ich geändert...geht aber trotzdem nich...
jetzt springt er mir immer zu "Falsch", egal ob die 3. zahl 2 ist oder nich...Dann ist die dritte Zahl auch nicht 2, liegt wohl daran dass du falsch einliest.
cin>>i wird nicht hingehen und bei der Eingabe von 1003 die Zahl splitten und auf das Array verteilen, denn i ist gleichbedeutend mit i[0]. D.h. du schreibst 1003 in i[0]!#include <iostream> using namespace std; //... char i[4]; cin>>i[3]; //gib mal 2 ein cout<<i[3]; //dann gibt er hier auch 2 aus if (i[3] == '2') //EDIT: Wir vergleich hier auf char! { cout<<"Richtig"<<endl; return 0; } else { cout<<"Falsch"<<endl; return 0; } }
-
Hi!
Du meinst die 4. Ziffer (index 3), oder?
Außerdem würde ich das char-Array auf 5 erweitern, da noch die terminierende 0 in das Array passen sollte.Grüße
Richie
-
Das hatte ich eben übersehen. GPC hat auf jeden fall Recht!
-
Alles klar...
der fehler waren die zwei '...' strichels in der if-bedingung!
Klappt einwandfrei
Mille Grazie
EOF
-
Hab noch ein problem betreffend der if-Abfrage!
Ich will z.B. von ner 4-stelligen zahl die letzte ziffer abfragen ob diese gerade ist (0,2,4,6,8) oder ungerade ist (1,3,5,7,9).
Kann ich diese Bed. alle in eine If-Anweisung reinstecken, also
if ((i[3] == '0') || (i[3] == '2') || usw.) {zahl ist gerade} if ((i[3] == '1') || usw.) {zahl ist ungerade} . .. ...schreiben?
Thanks
-
Warum in Char Array einlesen und nicht in eine Zahl?
int zahl; cin >> zahl; if(zahl % 2) { cout << zahl << " ist nicht gerade."; } else { cout << zahl << " ist gerade."; }Gruß
-
ich finde in ne zahl is es problematischer einzulesen, aber gut, ich mach es für gewöhnlich mit
char eingabe[20]; int zahl; cin>>eingabe; zahl = atoi(eingabe);weil es irgendwie sicherer is damit Benutzereingaben abzufangen
-
Wie wärs denn mal mit Initialisierung des Arrays.

Ansonsten werden da zwängsläufig ziemlich zufällige
Werte drin stehen.
-
Hmm...sorry...mein fehler...muss wohl bissle konkreter werden...
Ich hab am anfang ein char (zahl) in das ich ne zahl einlese (z.B. 9902).
Ferner hab ich ein char (titel) in das ich überstrcmp(titel,"Diagramm 1 ");einen Text reinkopier. Hintendran kleb ich über
strcat(titel,zahl);die eingebene Zahl.
Nun will ich die zahl auf ihre letzte ziffer hin überprüfen, ob diese gerade od. ungerade ist.wenn sie gerade ist, soll
strcat(titel," ohne Pulser");durchgeführt werden
wenn ungerade, dann
strcat(titel," mit Pulser");Irgendiwe hängt er mir aber immer beides nacheinander dran,
also "Diagramm 1 9902 ohne Pulser mit Pulser"Ich hab keinen Plan wieso

Thx
-
Ok habs gelöst...
es warn die verdammtem == anstatt = in der if-Bed.
SChande über mich...aber es iss ja auch montag

Sorry
EOF
-
Machs halt einfach so, dass du, wie ich es beschrieben habe:
char i[4]; int x cin>>i; x = atoi(i); strcat(titel,i); if(x%2==0) strcat(titel," ohne Pulser"); else strcat(titel," mit Pulser");Damit sollte es gehen, denk ich ma