我试图用减法替换字符。它有效,但是这个方法留下了空白:
#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);
}
}
它的减法产生了不必要的输出,我无法弄清楚原因。
示例输入: Hello选项卡标签选项卡
输出: 你好tabt tabt标签
目标是Hello tabttabttab。
答案 0 :(得分:0)
&#34;空白&#34;是打印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);