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 }

    运行结果:

  • 相关阅读:
    字体向上滚动
    地图改变图层
    移动地图
    [转] nodejs安装不了和npm安装失败的解决方法
    git回滚merge
    处理网站缓存问题
    webpack初学笔记 之 小案例篇demo1
    正则表达式整理
    关于返回值为图片 音频 视频的处理
    jquery ui datepicker 插件如何设置只能选择日期 禁止输入日期
  • 原文地址:https://www.cnblogs.com/bboykaku/p/12448985.html
Copyright © 2011-2022 走看看