| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:请高手帮忙加下注释!输入一段字符串 找出字符串中的 最长单词
只看楼主 加入收藏
zd1505675319
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:178
注 册:2011-11-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请高手帮忙加下注释!输入一段字符串 找出字符串中的 最长单词
#include<stdio.h>
#include<string.h>
int main()
{    int alphabetic(char);
    int longest(char[]);
    int i;
    char line[100];
    printf("input the line:\n");
    gets(line);
    printf("The longest word is:");
    for(i=longest(line);alphabetic(line[i]);i++)
        { printf("%c",line[i]);}
    printf("\n");
    return 0;
}
    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;
    }
搜索更多相关主题的帖子: 单词 alphabetic include return 字符串 
2011-12-05 18:09
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{  
    int alphabetic(char);        //判断是否是字母的函数
    int longest(char[]);
    int i;
    char line[100];
    printf("input the line:\n");//提示输入line
    gets(line);                    //输入字符串line
    printf("The longest word is:");
    for(i=longest(line);alphabetic(line[i]);i++)//i等于最长单词的起始下标,当line[i]不是字母时跳出循环
    {
        printf("%c",line[i]);
    }
    printf("\n");
    return 0;
}
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;//len,length记录单词长度,flag标志作用,place,point记录单词起始的下标
    for(i=0;i<=strlen(string);i++)
    {  
        if(alphabetic(string[i]))//string[i]为字母时,执行
        {
            if(flag)
            {
                point=i;
                flag=0;
            }
            else
            {
                len++;
            }
        }
        else
        {
            flag=1;
            if(len>=length)
            {
                length=len;//
                place=point;
                len=0;//置0,计算后面字符中的最长单词长度
            }
        }
       
    }
    return  place;
} 
2011-12-05 20:25
zd1505675319
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:178
注 册:2011-11-4
收藏
得分:0 
虽然还不是很懂 但是谢谢你的解答
2011-12-05 20:45
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 3楼 zd1505675319
哪里不懂,发短信告诉我。我再帮你看看。你回复,我看不到的。
2011-12-05 21:02
快速回复:请高手帮忙加下注释!输入一段字符串 找出字符串中的 最长单词
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016316 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved