一个以最长单词输出的代码

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:21:40
#include "stdio.h"
#include "string.h"
int alphabetic(char c)
{
if ((c>='a'&& c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0);
}
int longest(char string[])
{
int len=0,i,length=0,flag=1,place=0,point;
for(i=0;i<=strlen(string);i++)
if(alphabetic(string[i]))
if(flag)
{
point=i;
flag=0;
}
else
len++;
else
{
flag=1;
if(len>=length)
{ length=len;
place=point;
len=0;
}
}

return(place);
}
void main( )
{
int i;
char line[100];
printf("Input one line:\n");
gets(line);
printf("\nThe

我把格式稍微改了一下,加了个大括号,程序应该好读些了,后面都写了注释
-----------------------------------------------------------------------------
#include "stdio.h"
#include "string.h"

//判断是否是字母,是返回1,否返回0
int alphabetic(char c)
{
if ((c>='a'&& c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0);
}

int longest(char string[])
{
//len:单词长度
//i:循环变量
//length:最长单词长度
//flag:新单词标志,字母被其他字符隔开则判定为新单词开始
//place:最长单词首字母位置
//point:单词首字母位置
int len = 0, i, length = 0, flag = 1, place = 0, point;

for(i = 0;i <= strlen(string);i++) //循环判断字符串中的字符
if(alphabetic(string[i])) //判断字符串中的字符是否为字母
{
if(flag) //如果是新单词开始
{
point = i; //记录新单词位置
flag = 0; //重置新单词标志,表示现在位置是在一个单词里,而不是新单词开始
}
else
{
len++; //否则单词长度+1
}
}
else /