C中制表符、空格和空白之间的差异

C中制表符、空格和空白之间的差异,c,tabs,space,C,Tabs,Space,我在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') +

我在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);
}
#包括
#在1中定义
#定义出0
main()
{
北卡罗来纳州北卡罗来纳州北纬1号国际机场;
状态=输出;
n1=nw=nc=0;
而((c=getchar())!=EOF)
{
++数控;
如果(c=='\n')
++n1;
如果(c=''| | c='\n'| | c='\t')
状态=输出;
else if(state==OUT)
{
状态=IN;
++西北;
}
}
printf(“%d%d%d\n”,n1,西北,北卡罗来纳州);
}
我猜这里的
c='
c='\t'
也在做同样的工作


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

它们有不同的内部代码和含义。例如,
'\t'
具有等于9的内部代码,而空格
'
具有ASCII格式的内部代码32和EBCDIC格式的内部代码64。有些程序可以用tab代替一些空格。例如,请尝试以下代码

#include <stdio.h>

int main()
{
    printf( "From here" " " "to here\n" );
    printf( "From here" "\t" "to here\n" );
}
#包括
int main()
{
printf(“从此处”“”“到此处\n”);
printf(“从此处”\t“到此处”\n”);
}

并比较printf的两个调用的输出。

它们具有不同的内部代码和含义。例如,
'\t'
具有等于9的内部代码,而空格
'
具有ASCII格式的内部代码32和EBCDIC格式的内部代码64。有些程序可以用tab代替一些空格。例如,请尝试以下代码

#include <stdio.h>

int main()
{
    printf( "From here" " " "to here\n" );
    printf( "From here" "\t" "to here\n" );
}
#包括
int main()
{
printf(“从此处”“”“到此处\n”);
printf(“从此处”\t“到此处”\n”);
}

并比较printf的两个调用的输出。

它们具有不同的内部代码和含义。例如,
'\t'
具有等于9的内部代码,而空格
'
具有ASCII格式的内部代码32和EBCDIC格式的内部代码64。有些程序可以用tab代替一些空格。例如,请尝试以下代码

#include <stdio.h>

int main()
{
    printf( "From here" " " "to here\n" );
    printf( "From here" "\t" "to here\n" );
}
#包括
int main()
{
printf(“从此处”“”“到此处\n”);
printf(“从此处”\t“到此处”\n”);
}

并比较printf的两个调用的输出。

它们具有不同的内部代码和含义。例如,
'\t'
具有等于9的内部代码,而空格
'
具有ASCII格式的内部代码32和EBCDIC格式的内部代码64。有些程序可以用tab代替一些空格。例如,请尝试以下代码

#include <stdio.h>

int main()
{
    printf( "From here" " " "to here\n" );
    printf( "From here" "\t" "to here\n" );
}
#包括
int main()
{
printf(“从此处”“”“到此处\n”);
printf(“从此处”\t“到此处”\n”);
}

并比较printf的两个调用的输出。

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

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


我不知道像“垂直标签”这样的字符用得多。许多“控制字符”可以追溯到以前,它们被用来向打印机提供如何移动打印头的指示。

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

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


我不知道像“垂直标签”这样的字符用得多。许多“控制字符”可以追溯到以前,它们被用来向打印机提供如何移动打印头的指示。

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

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


我不知道像“垂直标签”这样的字符用得多。许多“控制字符”可以追溯到以前,它们被用来向打印机提供如何移动打印头的指示。

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

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


我不知道像“垂直标签”这样的字符用得多。许多“控制字符”可以追溯到以前,它们被用来向打印机提供如何移动打印头的指示。

空格和空格的含义相同。 垂直(12月11日)和水平(12月9日)选项卡描述了它们的含义本身。这些是文件格式化时使用最多的字符。考虑下面的代码。

#include<stdio.h>

int main()
{
 int i =0;
 int a[] = {97,32,98,9,65,10,66,11,67};
 while(i<9)
 printf("%c",a[i++]);
 return 0;
}
#包括
int main()
{
int i=0;
int a[]={97,32,98,9,65,10,66,11,67};

而(i空格和空格的含义相同。 垂直(12月11日)和水平(12月9日)选项卡描述了它们的含义。这些字符在文件格式化中使用最多。请考虑下面的代码。

#include<stdio.h>

int main()
{
 int i =0;
 int a[] = {97,32,98,9,65,10,66,11,67};
 while(i<9)
 printf("%c",a[i++]);
 return 0;
}
#包括
int main()
{
int i=0;
int a[]={97,32,98,9,65,10,66,11,67};

而(i空格和空格的含义相同。 垂直(12月11日)和水平(12月9日)选项卡描述了它们本身的含义。这些字符在文件格式化中使用最多。请考虑下面的代码。