2016-10-31 5 views
-1

私が読んだとおり、C++コンパイラは自分で初期化する前にランダムなデータでテーブルを初期化します。 私は実行後に(例えば)私にこの出力charテーブルを与えるプログラムを持っています。空の(または間違ったデータで埋められた)フィールドを削除する方法

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

ここで、手紙や空欄のような不便なデータをすべて削除したいと思います。 私はこのコードでこれを達成しようとしていますが、ASCIIコードに変換すると思います。私は別の方法でこれを達成することができますか?

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

これは何をすべきなのですか?(wyjscie [i]> -241241 || wyjscie [i] <2141242142) '? – grigor

+0

整数値を渡す必要がある条件 – Mikkey

+0

このトピックは、文字が何であるかの誤解に基づいており、将来の読者にとっては有用ではない可能性があるため、このトピックをオフトピックとして閉じるよう投票しています。 –

答えて

1

(wyjscie[i] >-241241 || wyjscie[i] < 2141242142)が問題です。文字で表される整数値と文字の整数コードを混同しています。 cが0と9の間にあるかどうか確認する場合は、c >= '0' && c <= '9'を実行します。

+0

文字cが-1000〜1000の場合はどうなりますか? – Mikkey

+1

文字は1文字のみです。 1000は4文字です。 – grigor

関連する問題