栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

思路:
一个一维字符数组拆成一个二维数组,二维数组看成多个一维数组。再比较二维数组中的每个一维数组的长度,初始化maxlen,把二维数组的str[0]的长度设为最大长度长度。再依次比较,找出长度最大的一维数组。
代码:

#include 
#include 
#define N 50
int main() {
    void result(char str1[]);
    char str1[N];
    printf("请输入字符串:n");
    //scanf("%s",str1);
   // scanf会以键盘输入空格为结束
    gets(str1);
   // fgets(str1,N,stdin);
    result(str1);
    return 0;
}
void result(char str1[]) {
    int i,j,m,h,maxlen,max=0,len=strlen(str1);
    char str2[N][N];
    printf("字符串长度len=%dn",len);
    printf("------------n");
    for(i=0,j=0,h=0;i<=len;i++) {
        if(str1[i]!=' ') {
            str2[j][h]=str1[i];
            h++;
        }
        else {
            //把连续的所有空格都换成'',存在同一个str2[j]中,避免连续空格而新占一个str2[j]
            if(str1[i+1]==' ') {
                str2[j][h]='';
                h++;
            }
            else {
                str2[j][h]='';
                j=j+1;
                h=0;
            }
        }
    }
    maxlen=strlen(str2[0]);
    for(m=0;m<=j;m++) {
        int n=strlen(str2[m]);
        //  printf("str2[%d]=%dn",m,n);
        if(n>maxlen) {
            maxlen=strlen(str2[m]);
            max=m;
        }
        //printf("%sn",str2[m]);
        printf("strlen(str2[%d])=%dn",m,strlen(str2[m]));
    }
    printf("------------n");
    printf("运行结果为:n");
    printf("%s",str2[max]);
}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510143.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号