请编写程序,主函数中输入一行英文,调用函数(自定义函数)输出该行英文
中最大(字典排序)的那个单词。(需要用到字符串比较函数和字符串复制函
数)
下面是我自己写的代码,编译正确结果错误
#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 <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;
}