8.10写一函数,输入一行字符,将此字符串中最长的单词输出。


 代码量稍微一大,就会出现bug,浪费很多时间,继续努力。

#include <stdio.h>

void main(){
    void maxLen(char str[50]);
    char str[50];
    gets(str);
    maxLen(str);
}

void maxLen(char str[50]){
    int i,j=1,t=-1,start=0,m;
    int maxNum(int num[50]);
    int num[50]={0};
    
    num[0]=-1;//num[1]放第一个单词的长度,num[2]放第二个单词的长度,。。。
    for(i=0;i<50;i++){
        if(str[i]==' ' || str[i]=='\0') {num[j]=i-t-1;t=i;j++;
        }
    }
    //找出num[j]最大时的下标m
    m=maxNum(num);

    //计算最长字符串的开始位置
    for(i=1;i<m;i++){
        start += (num[i]+1);
    }

    //输出最长字符串
    for(i=start;i<start+num[m];i++){
        printf("%c",str[i]);
    }
    printf("\n");
}

int maxNum(int num[50]){
    int i,j;
    int max=num[0];//num[0]=-1
    for(i=0; i<50; i++){
        if(max<num[i]){max=num[i]; j=i;}
    }
    return (j);
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM