#include<malloc.h>
#include<stdio.h>
int main()
{
char*getstr(void);
//
intlongest(char *str,char *word);
intlongest(char string[]);
intalphabetic(char c);
char *str =NULL;char *word = NULL;
intlength,i,j;
printf("Please input one line:\n");
str =getstr();
// word
=(char*)malloc(sizeof(char)*1);
// length =longest(str,word);
printf("Thelongest word in thi text is:");
for(i =longest(str),j = 0;alphabetic(str[i]);i++,j++)//input the longestword.
{
printf("%c",str[i]);
}
printf("\nits length is %d",j);
return0;
}
char * getstr(void)
{
char c,*str=NULL;
int n=0;
while (1)
{
c=getchar();
str=(char*)str?realloc(str,sizeof(char)*++n):malloc(sizeof(char)*++n);
if (c=='\n'||c==EOF)
{
str[n-1]='\0';
break;
}//if
str[n-1]=c;
}
return str;
}
int alphabetic(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return 1;
else return0;
}
int longest(char string[])
{
int i,length= 0,flag = 0,place = 0,point;
for(i =0;i<=strlen(string);i++)
{
if(alphabetic(string[i]))
{
if(flag==0)
{
point = i;
flag = 1;
}
else
{
flag++;
}
}
else
{
if(flag>=length)
{
length = flag;
place = point;
}
flag = 0;
}//else
}//for
returnplace;
}//longest
注释掉的是本人写的,同过参数传递的方式获取单词长度length/单词word。测试用例比较简单,目前未发现bug。
未注释掉的则是根据教材修改的,实现的也是同上功能(比教材多一点功能),经过严格的白盒测试,基本无bug。
#include<stdio.h>
int main()
{
}
char * getstr(void)
int alphabetic(char c)
{
}
int longest(char string[])
{
}//longest
注释掉的是本人写的,同过参数传递的方式获取单词长度length/单词word。测试用例比较简单,目前未发现bug。
未注释掉的则是根据教材修改的,实现的也是同上功能(比教材多一点功能),经过严格的白盒测试,基本无bug。