2016-01-03 19 views
0

我試圖用減法替換字符。它的工作原理,但它留下一個空白用這種方法:C - 爲什麼減去單個字符會留空?

#include <stdio.h> 

int main(void) { 

int c; 

while((c = getchar()) != EOF) { 
    if (c == '\t') 
     putchar('t'); 
    if(c == '\t') 
     c = c - '\t'; 
    putchar(c); 
} 

} 

它,讓不需要的輸出,我無法弄清楚,爲什麼減法。

示例輸入: 你好標籤標籤標籤

輸出: 你好tabt tabt標籤

目標是你好tabttabttab。

+0

如果您收到不必要的輸出,請[編輯]您的文章,包括一些樣品輸入你給/獲得輸出。 – Arc676

+2

你想用什麼來代替人物?爲什麼你認爲減法是做到這一點的方法? – kaylum

+0

請提供一些能夠正確編譯和縮進代碼的東西。 –

回答

0

「空白」是打印NUL(0)字符的結果。無論何時輸入'\t',都會打印NUL,這不是可打印的字符。

if(c == '\t')  
    c = c - '\t'; 
putchar(c); // same as putchar(0); if c == '\t' 

也許,你想與-更換標籤:

if(c == '\t')  
    c = '-'; 
putchar(c); 
+0

謝謝!現在很明顯。 – Keon