求解答C语言

来源:百度知道 编辑:UC知道 时间:2024/06/24 17:31:40
用一个函数来实现将一行字符串中最短的单词输出。此行字符串从主函
谢谢

#include<stdio.h>
#include<string.h>
/*以下6行,函数alphabetic,判断是否为字母*/
int alphabetic(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return(1);
else return(0);
}
/*以下30行,函数longest,计算最长单词的起始位置。*/
int shortest(char string[])
{
int len=1,i,flag,length=strlen(string),place=0,point;
/*flag表示单词是否开始,flag=0表示未开始,flag=1表示单词开始;
len表示单词以累计的字母个数;length表示先前单词中最短单词的长度;
point表示当前单词的起始位置;place表示最长单词的起始位置.*/

for(i=0;i<=strlen(string);i++)
{
if(alphabetic(string[i]))/*判断是否为字母*/
{
if(flag)/*是,开始*/
{
flag=0; point=i;
}
else len++;/*进入计算,+1*/
}
else/*不是,比较已统计*/
{
flag=1;
if(len<=length)
{
length=len;
place=point;

}
len=0;
}
}
return(place);
}
/*以下14行,主函数,调用shortest计算最长单词的起