写一函数,输入一行字符,将此字符串中最长的单词输出。
结果不对。
程序:
int alphabetic(char c) /* 判断当前字符是否字母,是则返回1,否则返回0 */
{
if((c>=’a'&&c<=’z')||(c>=’A'&&c<=’Z'))
return 1;
else
return 0;
}
int longest(char string[]) /* 寻找最长单词地起始位置 */
{
int len=0;
int i;
int length=0;
int flag=1;
int place=0;
int point;
for(i=0;i<=strlen(string);i++)
if(alphabetic(string[i])) /* 检查是否是字母,是则flag=0,将i值给point */
if(flag)
{
point=i;
flag=0;
}
else
len++; /* 当前单词已累计的个数 */
else
{
flag=1;
if(len>=length)
{
place=point;
len=0;
}
}
return(place);
}
main()
{
int i;
char line[100];
printf(“Input one line:\n”);
gets(line);
printf(“\nThe longest word is:”);
for(i=longest(line);alphabetic(line[i]);i++)
printf(“%c”,line[i]);
printf(“\n”);
getch ();
return 0;
}