私はCのソースコードを持っています。
#include <stdio.h>
#define IN_W 1
#define OUT_W 0
#define SPACE 32
#define TAB 9
int main() {
int c, state, temp;
state = OUT_W;
while ((c = getchar()) != EOF) {
if ((c != SPACE || c != TAB) && (state == OUT_W)) {
state = IN_W;
temp = c;
c = 13;
putchar(c);
c = 10;
putchar(c);
putchar(temp);
} else if (c != SPACE || c != TAB)
putchar(c);
else
state = OUT_W;
}
return 0;
}
私が達成したいのは、いくつかの文字/単語を入力し、それらの入力をgetcharでキャッチすることです。getcharがスペースまたはタブ以外の文字を受け取ると、新しい行が印刷され、スペースまたはタブが見つかるまで(それらを破棄して)それらの文字が印刷されます。たとえば、私が入力すると
123 eat 4bananas in themorning
プログラムは印刷されます
123
eat
4bananas
in
themorning
CRまたはLFと統合しようとしましたが、それでも「123は朝に4バナナを食べる」と印刷されます。
私の質問は次のとおりです。1。何が恋しかったですか?2.最後の「else」では、実行中のプログラムにとってどちらがより効率的ですか。
else
state = OUT_W;
また
else if ((c == SPACE || c == TAB) && state == IN_W)
state = OUT_W;
else
continue; // or can I use single ';' since we do nothing in here?
それで全部です。ご協力ありがとうございました。
注:「\n」と「\t」も試してみました。
よろしく、マリオ