2016-10-31 9 views
-1

Wie ich gelesen habe, initialisiert der C++ - Compiler die Tabelle mit den zufälligen Daten, bevor ich es selbst initialisiere. Ich habe ein Programm, das nach dem Ausführen (zum Beispiel) geben Sie mir diese Ausgabe - Char-Tabelle.So entfernen Sie leere (oder mit falschen Daten gefüllt) Felder

{'D','K','2','EMPTY FIELD','1','+','EMPTY FIELD','EMPTY FIELD','3','EMPTY FIELD','/'} 

Jetzt möchte ich ganze unbequeme Daten wie Briefe und leere Felder löschen. Ich versuche, dies mit diesem Code zu erreichen, aber ich denke, es überträgt es in ASCII-Code. Kann ich das auf andere Weise erreichen?

char wynik[20]; 
int j = 0; 
for (int i = 0; i <20; i++) 
{ 
    if (wyjscie[i] == '+' || wyjscie[i] == '-' || wyjscie[i] == '/' || wyjscie[i] == '*' || (wyjscie[i] >-241241 || wyjscie[i] < 2141242142)) 
    { 
     wynik[j] = wyjscie[i]; 
      j++; 
    } 
} 
+1

was soll das tun? (Wyjscie [i]> -241241 || wyjscie [i] <2141242142) '? – grigor

+0

Bedingung, die Integer-Werte übergeben sollte – Mikkey

+0

Ich stimme für das Schließen dieser Frage als off-topic ab, weil es auf einem Missverständnis dessen basiert, was ein Charakter ist und nicht wahrscheinlich für zukünftige Leser nützlich sein wird. –

Antwort

1

(wyjscie[i] >-241241 || wyjscie[i] < 2141242142) ist Ihr Problem. Sie verwechseln die Ganzzahlwerte, die durch ein Zeichen und die Ganzzahlcodes von Zeichen dargestellt werden. Wenn Sie überprüfen möchten, ob ein Zeichen c zwischen 0 und 9 liegt, können Sie tun.

+0

Was ist, wenn das Zeichen c zwischen -1000 und 1000 liegt? – Mikkey

+1

Ein Zeichen ist nur ein Zeichen. 1000 ist 4 Zeichen. – grigor

Verwandte Themen