您的位置:首页 > 博客中心 > 互联网 >

字符计数与行计数

时间:2022-05-11 09:05

字符计数

#include

int main(){
    long nc;
    nc = 0;
    while(getchar()!=EOF)
        ++nc;
    printf("%ld\n",nc);
        
}

技术图片

下面是for循环的代码:

#include

int main(){
    double nc;
    for(nc = 0;getchar()!=EOF;++nc)
        ;
    printf("%.0f\n",nc);
    return 0;
}

我对%.0f进行了几个改变分别是%.0f,%f,%.1f,%.2f,下面是结果:

技术图片

行计数

统计行数等价于统计换行符的个数

#include

int main(){
    int c,n1;
    n1 = 0;
    while((c=getchar())!=EOF)
        if(c==‘\n‘)
            ++n1;
    printf("%d\n",n1);
    return 0;

}

技术图片

以上的单引号中的字符表示一个整型值,注意‘\n‘与"\n"的不同,前者单个字符,是个整型数。后者是仅仅包含一个字符的字符串常量。

习题

编写一个统计空格、制表符与换行符的个数的程序
#include

int main(){
    int c,n1,n2,n3; 
    n1 = 0;
    n2 = 0;
    n3 = 0; 
    while((c=getchar())!=EOF){
    
        if(c==‘ ‘)
            ++n1;
        if(c==‘\t‘)
            ++n2;
        if(c==‘\n‘)
            ++n3;
    }
    printf("空格个数:%d\n",n1);
    printf("制表符个数:%d\n",n2);
    printf("换行符个数:%d\n",n3);
    return 0;

}
技术图片
编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
#include

int main(){
    int c,n1; 
    n1 = 0;
     
    while((c=getchar())!=EOF){
    if(c==‘ ‘){
        ++n1;
        if(n1>=2){
            
        }else{
            putchar(c);
        }
            
    }
            
    else{
        n1=0;
        putchar(c);
    }
        
      
    }
    
    
    return 0;

}

技术图片

编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为 \\。这样可以将制表符和回退符以可见的方式显示出来。
#include

int main(){
        int c;
        while ((c = getchar()) != EOF){
        if(c == ‘\t‘)
                printf("\\t");
        else if (c == ‘\b‘)
                printf("\\b");
        else if(c == ‘\\‘)
                printf("\\\\");
        else
                putchar(c);
        }


        return 0;

}

由于我的是win10环境,getchar()读取不了回退符所以我使用了我的docker搭建了kali的系统来测试了:

技术图片

注意:Ctrl+H是回退符。

本类排行

今日推荐

热门手游