| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1023 人关注过本帖
标题:一道编程题的困惑
取消只看楼主 加入收藏
妍清舞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-12
收藏
 问题点数:0 回复次数:1 
一道编程题的困惑
/*
编程题:

  函数replace的功能是:将所有在字符串s中出现的t1字符串全部替换成t2字符串。
  注意t1和t2的长度均大于0,但未必相等。替换之后的结果通过函数返回。
  
例如:
  s="123abc12f", t1="12", t2="3", 则结果为"33abc3f"。
  
要求:
  1. 已有的程序框架不准修改;
  2. 所有内容最好添加在replace函数中,不过允许在replace前自定义新函数;
  3. 不准在添加的代码中调用字符串有关的任何系统函数。
*/
#include "stdio.h"
#include "stdlib.h"

char *replace(char *s, char *t1, char *t2)
{
    char *p1=s;
    char temp;
    int len_t1=0,len_t2=0,len_s=0;
    int m,i,j,k,l,cur;
    int flag;
    while(*t1!='\0')
    {
        len_t1++;
        t1++;
    }
    while(*t2!='\0')
    {
        len_t2++;
        t2++;
    }
    m=len_t2-len_t1;
    while(*p1!='\0')
    {
        len_s++;
        p1++;
    }
    for(i=0;i<len_s-len_t1;i++)
    {
        flag=1;
        for(j=0;j<len_t1;j++)
        {
            if(*(p1+i)!=*(t1+i))
            {
                flag = 0;
                break;
            }
            if (flag)
                cur=i-len_t1;
        }
        if(m>=0)
        {
            for(k=len_s;k>i;k--)
                *(p1+k)=*(p1+k+m);
            for(l=cur;l<=cur+len_t2;l++)                       
                *(p1+l)=*(t1+l-cur);
        }
        if(m<0)
        {
            for(k=i;k<len_s;k++)
                *(p1+k)=*(p1+k+m);
            for(l=cur;l<=cur+len_t2;l++)
                *(p1+l)=*(t1+l-cur);
        }
    }
    return(s);
}

int main()
{
  char s[100]="bdec5e947c0e31cc2aa7fa47c98fbd06";
  char *t1="5";
  char *t2="FIVE";
  char *p;
  p = replace(s, t1, t2);
  printf("S=%s\n", s);
  printf("Replace %s with %s is:\n%s\n", t1, t2, p);
  getchar();
  return 0;
}

不知道哪一步出了问题,麻烦高手们帮忙看看,谢谢!
搜索更多相关主题的帖子: 函数 char replace 困惑 
2008-03-03 21:28
妍清舞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-12
收藏
得分:0 
谢谢了,各位大哥、大姐,小弟我终于知道错在哪了.
2008-03-05 17:30
快速回复:一道编程题的困惑
数据加载中...
 
   



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

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