C中制表符、空格和空白之间的差异
我在Ritchie和kernighan 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') +
#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日)选项卡描述了它们本身的含义。这些字符在文件格式化中使用最多。请考虑下面的代码。