| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2055 人关注过本帖
标题:有谁能帮我写一下main()函数
只看楼主 加入收藏
hmf66
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-7
收藏
得分:0 
回复 9# carazy 的帖子
你写的不行吧。。
2008-10-08 22:59
hmf66
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-7
收藏
得分:0 
没人帮我,汗!!
2008-10-09 23:49
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
程序代码:
#include <stdio.h>
#define STRINGLEN 81
struct string
{
    int len;
    char ch[STRINGLEN];
};

typedef struct string STRING;


//串比较
int StrCompare(s, t)
STRING *s, *t;
{
    int i = 0;
    while ((s->ch[i] = t->ch[i]) && (s->ch[i] != '\0') && (t->ch[i] != '\0'))
        i++;
    return s->ch[i] - t->ch[i];
}

//我的实现:
typedef struct string *my_string_t;
int new_str_cmp(const my_string_t lv, const my_string_t rv)
{
    int i;

    if (lv->len != rv->len)
        return 0;

    for (i = 0; i < lv->len; i++)
    {
        if (lv->ch[i] != rv->ch[i])
            return 0;
    }

    return 1;
}

//#define StrCompare new_str_cmp

int main()
{
    STRING s[3] = {{5, "Hello"}, {5, "Hello"}, {7, "HelloWd"}};
    printf("%d,%d,%d\n", StrCompare(s, s + 1),
           StrCompare(s + 1, s + 2), StrCompare(s, s + 2));
    return 0;
}

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-10 01:42
fcpk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-14
收藏
得分:0 
#include <stdio.h>
#include <malloc.h>
#define STRINGLEN 81
typedef struct string
{
    int len;
    char ch[STRINGLEN];
}STRING;

int StrCompare(STRING *s,STRING *t)
{
    int i=0;
    while((s->ch[i]==t->ch[i])&&(s->ch[i]!='\0')&&(t->ch[i]!='\0'))
        i++;
    return s->ch[i]-t->ch[i];
}
void main()
{
    int n;
    STRING *str1,*str2;
    str1=(STRING *)malloc(sizeof(STRING)*STRINGLEN);
    str2=(STRING *)malloc(sizeof(STRING)*STRINGLEN);
    gets(str1->ch);
    gets(str2->ch);
    
    n=StrCompare(str1,str2);
    if(n==0)
    {printf("str1 == str2\n");}
    else if(n>0)
    {printf("str1 > str2\n");}
    else
    {printf("str1 < str2\n");}
}
2008-10-10 01:54
fcpk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-14
收藏
得分:0 
int my_strcmp(const char *s1, const char *s2 )
{
    int i=0;
    while(*(s1+i) || *(s2+i))
    {
        if(*(s1+i) > *(s2+i))
            return  1;
        if(*(s1+i) < *(s2+i))
            return -1;
        i++;
    }
    return 0;
}
2008-10-10 02:10
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS,*(s1+i)根本就是s1[i],不需要写那么麻烦。
还有,你是不是忘了那个结构体里面还有一个len了??

单纯的strcmp,根本不需要这么复杂的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-10 04:01
flydream0
Rank: 1
等 级:新手上路
帖 子:20
专家分:7
注 册:2008-10-10
收藏
得分:0 
int strcmp_test(const char *str1,const char *str2)
{
    while((*str1==*str2)&&(*str1))
    {
      str1++;
      str2++;
    }
    if((*str1==*str2)&&(!*str1)) //Same strings
      return 0;
    else if((*str1)&&(!*str2))  //Same but str1 longer
      return -1;
    else if((*str2)&&(!*str1)) //Same but str2 longer
      return 1;
   else
      return((*str1>*str2)?-1:1);
}
2008-10-10 05:25
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS:
int strcmp(const char *lv, const char *rv)
{
    while (*lv && *lv == *rv)lv++, rv++;
    return *lv - *rv;
}

晕……代码改了三遍,还是阴沟里翻了船……早晨果然不适合看代码阿……

[[it] 本帖最后由 StarWing83 于 2008-10-10 08:27 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-10 07:23
hello_moto
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-7-15
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-10-10 07:23 的发言:[/bo]

LS:
int strcmp(const char *lv, const char *rv)
{
    while (*lv && *lv == *rv)lv++, rv++;
    return lv - rv;
}


版主,是lv-rv还是*lv-*rv???
2008-10-10 08:15
fcpk
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-14
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-10-10 04:01 的发言:[/bo]

LS,*(s1+i)根本就是s1,不需要写那么麻烦。
还有,你是不是忘了那个结构体里面还有一个len了??

单纯的strcmp,根本不需要这么复杂的。



谢谢指正。顺便问下:飞燕算法初级群:3996098是版主你创的群吗?
2008-10-10 08:26
快速回复:有谁能帮我写一下main()函数
数据加载中...
 
   



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

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