zoukankan      html  css  js  c++  java
  • 统计单词数目的三种解法

     1 #include<cstdio>
     2 using namespace std;
     3 int main()
     4 {
     5     char s[101];
     6     int n = 1, count = 0;
     7     gets(s);
     8     for(int i = 0; i <= 100; i++)
     9     {
    10         if(s[i] == '') break;
    11         if(s[i] == ' ') n = 1;
    12         else
    13         {
    14             if(n == 1)
    15             {
    16                 n = 0;
    17                 count++;
    18             }
    19         }
    20     }
    21     printf("%d", count);
    22     return 0;
    23 }

    比较麻烦,emmm...但比较好理解

    就是先扫一遍,判断

    然后因为开头单词前面没有空格,所以要单独判断。。。

    #include<cstdio>
    #include<cstring>
    using namespace std;
    int main()
    {
        char s[101];
        int n = 1, count = 0;
        gets(s + 1);
        s[0] = ' ';//预处理,前面加空格。 
        for(int i=0; i<=100; i++)
        {
            if(s[i] != ' ' && s[i-1] == ' ')
            count++;//计数 
        }
        printf("%d", count);
        return 0;
    }

    嗯。。。更简单了,但比较难想到

    先做一下预处理,在整个字符串前面加一个空格

    这样,之后就可以愉快的累加啦/手动滑稽/

    #include<cstdio>
    #include<cstring>
    using namespace std;
    char s[101];
    char x[105][1005];
    char tmp[105];
    int main()
    {
        char *p = s;
        gets(s);
        int i = 0, count = 0;
        while(++i)
        {
            while(p[0] == ' ') p+=1;
            if(sscanf(p,"%s", x[i]) == -1) break;
            sprintf(tmp, "%s", x[i]);
            p += strlen(tmp);
            count++;
        }
        printf("%d", count);
        return 0;
    }

    可爱的sscanf和sprintf。。。

    详解请参照下一条。。。/233/

  • 相关阅读:
    攻防世界wp--web robots
    kubernetes二: kubernetes 重要组件安装和集群管理
    kibana配置页面跳转
    二进制安装的k8s添加新的node节点
    分布式和微服务的区别
    kubernetes一: 二进制安装k8s集群
    kibana导入导出dashborad
    elk 创建一个只读用户
    x-pack模式下修改es集群密码
    docker基础命令
  • 原文地址:https://www.cnblogs.com/orange-233/p/11961576.html
Copyright © 2011-2022 走看看