是 秋秋~ 2021-12-20 20:28 采纳率: 100%
浏览 113
已结题

C语言 自定义函数 找最长单词

自定义一个函数,找出一行英文句子中最长的单词出现的开始位置和最长单词的字符个数,
英文句子的输入和最终输出结果要求在主函数中实现。

  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    #include <string.h>
    void findword(char word[], int *c, int *q){//这里findword单词记录的仅仅是最长单词的起始字符。
        int n,i,a,b;
        a=b=0;
        n=strlen(word);
        for(i=0;i<n;i++){
            if(word[i]!=' '){//遇到非空格字符时,b的数值加一
                b++;//b用来储存当前单词的长度,切记清零
            if(a<=b){//a用来储存扫描到的较长单词
                a=b;
                *q=b;
                *c=i-a+1;//用c来记录最长单词的起始位置
            }
            continue;//这里没有continue可能会导致else和第一个if语句同时执行,导致程序出错
            }
            else b=0;//如果得到的a>b,将b清零,用来记录下一个单词长度,否则b的值会一直增加,导致输出结果错误
        }
    }
    int main()
    {
        char a[100];
        gets(a);
        int c,q,i;
        findword(a,&c,&q);
        printf("最长的单词出现的开始位置:%d\n", c);
        printf("最长单词的字符个数:%d\n", q);
        for (i = c; i < c+q; i++)
            printf("%c",a[i]);
        return 0;
    
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退