gpt4 book ai didi

c - C中制表符,空格和空白之间的区别

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:13 24 4
gpt4 key购买 nike

我在 Ritchie 和 kernighan C 中遇到了以下代码,用于计数。单词..

#include<stdio.h>
#define IN 1
#define OUT 0
main()
{
int c,n1,nw,nc,state;
state = OUT;
n1 =nw = nc = 0;
while((c = getchar())!=EOF)
{
++nc;
if(c == '\n')
++n1;
if(c == ' '||c == '\n' ||c == '\t')
state = OUT;
else if(state == OUT)
{
state = IN;
++nw;
}
}

printf("%d %d %d\n",n1,nw,nc);
}

我猜 c == ' 'c == '\t' 正在做同样的工作。

谁能解释一下制表符、空格、空格、空白、换页符和垂直制表符之间的区别?

最佳答案

空格和制表符在 ASCII 中有不同的表示. 为 0x20,而 为 0x09。当程序检查当前字符时,两种可能性都需要测试。

另外值得注意的是 newline他们使用的字符是 '\n',即“换行符”,这是 Unix/Linux/BSD 的常规换行符。在 Windows 上,典型的换行符由“\r\n”或 CRLF(“回车”和“换行”)表示。

我不知道像“垂直制表符”这样的字符用得多。许多这些“控制字符”可以追溯到它们被用来向打印机提供有关如何移动打印头的指令的时代。

关于c - C中制表符,空格和空白之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com