zoukankan      html  css  js  c++  java
  • 输出一句话里面单词数,最长单词位置,最长单词包含字母个数,以及最长的单词(假定单词之间全部用' '隔开)

    代码如下:

     1 // 统计一个字符串中单词个数和最长单词的位置以及最长单词的字母数,只考虑句子单词之间用空格分开的情况下
     2 # include<stdio.h>
     3 # include<string.h>
     4 char c[100];
     5 struct S{
     6     int c1,c2,index;
     7     char va[25];
     8 };
     9 
    10 S st(char[]);
    11 
    12 int main()
    13 {
    14     gets(c);
    15     printf("单词个数:%d
    最长单词位置:%d
    最长单词长度:%d
    最长单词:%s
    ",st(c).c1,st(c).index,st(c).c2,st(c).va);
    16     return 0;
    17 }
    18 
    19 S st(char a[])
    20 {
    21     S s;
    22     s.c1=s.c2=0;     //不初始化随机分配的单元,函数里面的变量没经过编译系统初始化,内存值不确定
    23     int b=0;
    24     char temp[25];
    25     int maxcur=0;
    26     for(int i=0;a[i]!=0;i++)
    27     {
    28         if(a[i]==' ') 
    29         {
    30             b=0;
    31             if(maxcur>s.c2)
    32             {
    33                 temp[maxcur]=0;  //加零方便找到最长单词字符串的结尾
    34                 s.index=s.c1;
    35                 s.c2=maxcur;
    36                 strcpy(s.va,temp);
    37             }
    38             maxcur=0;
    39         }
    40         
    41         else
    42         {
    43             temp[maxcur++]=a[i];
    44             if(b==0)
    45             {
    46                 s.c1++;
    47             }
    48             b=1;
    49         }
    50     }
    51     if(maxcur>s.c2)
    52     {
    53         temp[maxcur]=0;
    54         s.index=s.c1;
    55         s.c2=maxcur;   //不用减1是因为maxcur从开始的
    56         strcpy(s.va,temp);
    57     }
    58     return s;
    59 }

    运行结果:

  • 相关阅读:
    Mac 删除Openfire
    FMDB使用
    豆瓣restful api 状态和错误码
    豆瓣开放api
    常用文字配色方案
    电商网站参考
    HP后端跨域HEADER头
    PHP统计 图表实现方法
    PHP 全过程教程和测试网
    Ajax技术在购物车中的应用(PHP篇)
  • 原文地址:https://www.cnblogs.com/bboykaku/p/12448985.html
Copyright © 2011-2022 走看看