输出字符串中最长的单词,不知道哪里错了
#include <stdio.h>
#include <string.h>
int main(){
char str[100];
printf("输入字符串:");
gets(str);
printf("最长的单词是:");
int i;
int letter(char c);
int longest(char arr[]);
for(i=longest(str);letter(str[i]);i++){
printf("%c",str[i]);
}
return 0;
}
int letter(char c){ //判断是否是英文字母
if(c>='a'&&c<='z'||c>='A'&&c<='Z') return 1;
else return 0;
}
int longest(char arr[]){
int flag=1;//表示将要读入的字母是起始位置的
int i;
int point=0;//表示当前单词的起始下标
int num=0;//表示当前单词累计的字母个数
int maxlength=0;//表示最长单词的长度
int place=0;//表示最长单词的起始位置
for(i=0;i<strlen(arr);i++){
if(letter(arr[i])){
if(flag){
point=i;
flag=0;
}
num++;
}
else {
flag=1;
if(num>=maxlength){
maxlength=num;
place=point;
}
num=0;
}
}
return place;
}