| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 972 人关注过本帖
标题:一个C题目。不会做,高手来看看你是不是也不会。
只看楼主 加入收藏
listen342325
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-11-14
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:15 
一个C题目。不会做,高手来看看你是不是也不会。
编写一个函数,其参数为字符串S,返回值为S中连续非空格字符所组成的子串中最大长字串的长度   如“abc 123#$ 789",中最长非空格字串是”123#$".则函数返回5
搜索更多相关主题的帖子: 123 字符串 
2010-11-14 23:13
cacker
该用户已被删除
收藏
得分:3 
提示: 作者被禁止或删除 内容自动屏蔽
2010-11-14 23:15
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
提供cstring几个函数
Find  Mid  Remove 有用的

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-14 23:19
HonryZZ
Rank: 2
等 级:论坛游民
帖 子:13
专家分:59
注 册:2010-11-12
收藏
得分:1 
..LZ太小看这里的童鞋们了..低手照样可以做吧...
2010-11-14 23:21
listen342325
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-11-14
收藏
得分:0 
谢谢,二楼的版主。但是又要求最长的,这要统计比较。
2010-11-14 23:22
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:2 
一个思路:你需要把字符串从空格处截断,然后进行统计。
思路拓展:截断字符串的时候需要遍历字符串,可以在遍历的时候直接把每个字串的长度统计出来,存到一个数组里,最后转化为,一个整数数列求最大值

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-11-14 23:30
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
以下是引用zghnxzdcx在2010-11-14 23:30:57的发言:

一个思路:你需要把字符串从空格处截断,然后进行统计。
思路拓展:截断字符串的时候需要遍历字符串,可以在遍历的时候直接把每个字串的长度统计出来,存到一个数组里,最后转化为,一个整数数列求最大值
2L就是这个意思

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-14 23:31
cacker
该用户已被删除
收藏
得分:2 
回复 5楼 listen342325
提示: 作者被禁止或删除 内容自动屏蔽
2010-11-14 23:48
落拓
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:173
注 册:2010-9-29
收藏
得分:3 
int fun( char s[])
{
    char *p;
    int n=0,m;

    p=s;
    for(;*p!='\0';)
    {
        while(*p==' '&&*p!='\0') p++;
        
        m=0;
        while(*p!=' '&&*p!='\0')
        {
            p++;
            m++;
        }
        if(m>n) n=m;
    }
   
    return n;
}
2010-11-15 00:00
HonryZZ
Rank: 2
等 级:论坛游民
帖 子:13
专家分:59
注 册:2010-11-12
收藏
得分:1 
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/* local variables */
char *str = "  abc #abdc    %%abcol ad asf avi xyzabcd   okisok hellosdfjlsdjfk   ";
char *space = " ";

/* local functions */
int GetMaxSubStr(char *str)
{
    char *p1 = str;
    char *p2 = str;
    char *p3 = str; /* result str pointer */
    int max_len = 0;
    int cur_len = 0;
   
    while (1)
    {
        p2 = strstr(p1, space); /* get the space location */
        if (p2 != NULL)
        {
            cur_len = p2 - p1; 
            if (cur_len > max_len)
            {
                max_len = cur_len;
                p3 = p1;
            }
            printf("%d\n", cur_len); 
            p1 = p2;
            while (*p1 == 0x20) // skip the sequence space, may be some words splited by more than one space.
            {
                p1++;
            }      
        }
        else
        {
            cur_len = 0;
            cur_len = strlen(p1); /* last words.. */
            if (cur_len > max_len)
            {
                max_len = cur_len;
                p3 = p1;
            }
            printf("%d\n", cur_len);             
            break;
        }
          
    }
   
    // print the result str
    {
        int str_idx;
        for (str_idx = 0; str_idx < max_len; str_idx++)
        {
            putchar(*p3++);
        }
        printf("\n");
    }
   
    return max_len;
}

int main()
{
    GetMaxSubStr(str); // test
    system("pause");
   
    return 0;
}


试了一下..不晓得能满足LZ的要求不...
2010-11-15 00:03
快速回复:一个C题目。不会做,高手来看看你是不是也不会。
数据加载中...
 
   



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

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