请编写程序,主函数中输入一行英文,调用函数(自定义函数)输出该行英文中最大(字典排序)的那个单词

请编写程序,主函数中输入一行英文,调用函数(自定义函数)输出该行英文
中最大(字典排序)的那个单词。(需要用到字符串比较函数和字符串复制函
数)
下面是我自己写的代码,编译正确结果错误
#include<stdio.h>
#include<string.h>
void biggest(char str[])
{
int i,j,m;
char word[100],max[100];
j=strlen(str);
str[j]=0;
str[j+1]='\0';
for(i=0;i<=j;i++)
{
while(str[i]==' ')
continue;//忽略空格,直到找到单词开始
while(1)//单词开始,向下找
{
m=0;
if(str[i]==' ') break;
word[m]=str[i];
m++;
i++;
}
if(strcmp(word,max)>0)
strcpy(max,word);
}
printf("the biggest word is:%s\n",max);
}

void main()
{
char str1[100];
printf("please input a sentence:\n");
gets(str1);
biggest(str1);
}

求大神解答

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char *biggest(char str[],char max[]) {
int i = 0,j;
char word[100];
max[0] = '\0';
    while(str[i]) {
while(str[i] && !isalpha(str[i])) ++i; // 滤除非字母字符
j = 0;
        while(isalpha(str[i])) // 开始读取单词
word[j++] = str[i++];
word[j] = '\0';
if(strcmp(word,max) > 0) strcpy(max,word);
}
if(j > 0) {
word[j] = '\0';
if(strcmp(word,max) > 0) strcpy(max,word);
}
return max;
}

int main() {
char str[100],word[100];
    printf("please input a sentence:\n");
    gets(str);
    printf("最大单词是:%s\n",biggest(str,word));
return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网