用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。... 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。
把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。
展开
 我来答
224vvqbot
2011-06-11 · TA获得超过560个赞
知道小有建树答主
回答量:1265
采纳率:75%
帮助的人:210万
展开全部
4.
#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计算最长单词的起始位置,并输出*/
void main()
{
char line[1024];
int i,n=0;
printf("please input one line:\n");
gets(line);
printf("The shortest word is :");
for(i=shortest(line);alphabetic(line[i]);i++)
{
printf("%c",line[i]);
n++;
}
printf("\nThe length is %d.\n",n);
}
clitoriscn
2011-06-10 · TA获得超过3628个赞
知道小有建树答主
回答量:3258
采纳率:0%
帮助的人:1523万
展开全部
这个函数太简单了,不过你还要连接来连接去.这个我帮不上忙
我环境和你的不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式