我有以下程序,我試圖瞭解\b
轉義序列的功能。 b如何實現?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int disp(char *a)
{
return printf("%s", a);
}
int main(void)
{
char *s = "Hello\b\b";
printf(" %d\n", disp(s));
printf("%s %d\n", s, strlen(s));
return 0;
}
輸出:
$ ./a.out
Hel 7
Hel 7
$
正如預期Hello\b\b
打印Hell
但strlen()
返回7,其包括兩個\b
字符。
按C99 5.2.2 \b
定義如下:
\b (backspace) Moves the active position to the
previous position on the current line. If the
active position is at the initial position of
a line, the behavior of the display device is
unspecified.
如何\b
解釋字符串相關的功能,如strlen()
?在編譯時或運行時解析\b
和其他轉義序列嗎?
實際上,它們被稱爲「控制字符」。 「轉義」是指用於改變後續字符含義的特定控制字符。 – 2011-12-29 21:12:36
@HotLicks:好的,謝謝。 – thiton 2011-12-29 21:13:53
(好帖子,否則 - 我給它+1) – 2011-12-29 22:09:48