| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:求助。。。简单的函数顺序问题
只看楼主 加入收藏
xiaoseqingch
Rank: 2
等 级:论坛游民
帖 子:36
专家分:42
注 册:2010-6-19
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:8 
求助。。。简单的函数顺序问题
#include <stdio.h>
#include <string.h>
char *fan(char *arr)
{
  char *p=arr;  /*p指向数组*/
  char *t;
  while(*p!='\0')  /*数组没有到结束就循环*/
  {
    p++;  /*指针后移*/
    if(*p=='b')  /*当指针指向的值是#*/
    {
      t=p;  /*t指向数组*/
      while(*t!='\0')  /*数组没有到结束就循环*/
      {
        *t=*(t+1);  /*数组前移一位*/
        t++;  /*指针后移*/
      }
      p--;  /*指针前移,重新检查该位置值*/
    }
  }
  return arr;
}
void main()
{
  char s[]="afbwbbbdsbvbwfsdfbwqbb";
  char *p;
  p=s;
  printf("%s\n",p);
  printf("%d\n",fun(p));
  printf("%s\n",fan(p));
}

int fun(char *p)
{
    int n=0;
    char *t=p;
    while(*t!='\0')
    {
    if(*t=='b')
    {    n+=1;
        t++;
    }
    else
    t++;
    }
    return n;
}

这样就是对的。。可是为什么??下面那样就报错??应该没有顺序问题吧?
#include <stdio.h>
#include <string.h>

void main()
{
  char s[]="afbwbbbdsbvbwfsdfbwqbb";
  char *p;
  p=s;
  printf("%s\n",p);
  printf("%d\n",fun(p));
  printf("%s\n",fan(p));
}

int fun(char *p)
{
    int n=0;
    char *t=p;
    while(*t!='\0')
    {
    if(*t=='b')
    {    n+=1;
        t++;
    }
    else
    t++;
    }
    return n;
}

char *fan(char *arr)
{
  char *p=arr;  /*p指向数组*/
  char *t;
  while(*p!='\0')  /*数组没有到结束就循环*/
  {
    p++;  /*指针后移*/
    if(*p=='b')  /*当指针指向的值是#*/
    {
      t=p;  /*t指向数组*/
      while(*t!='\0')  /*数组没有到结束就循环*/
      {
        *t=*(t+1);  /*数组前移一位*/
        t++;  /*指针后移*/
      }
      p--;  /*指针前移,重新检查该位置值*/
    }
  }
  return arr;
}

[ 本帖最后由 xiaoseqingch 于 2012-7-21 10:39 编辑 ]
搜索更多相关主题的帖子: void include return 
2012-07-21 10:34
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:2 
有些奇怪!
可能跟你的编译系统的设置有关吧!

做自己喜欢的事!
2012-07-21 12:15
yafei900914
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2012-7-15
收藏
得分:2 
你可能是没有进行函数原型声明
2012-07-21 15:56
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:2 
唔 没声明函数就直接调用了
理论上应当两个都出问题的唔,不过测试了下,第一个确实没报错,把fun的返回值换成指针类型就报错,值得研究下
唔 编译环境TC2

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-21 20:41
xiaoseqingch
Rank: 2
等 级:论坛游民
帖 子:36
专家分:42
注 册:2010-6-19
收藏
得分:0 
回复 4楼 LShang
把fun的返回值换成指针类型就报错

当然报错了。。我声明的整型数据啊。。/*int fun(char *p)*/
2012-07-22 13:22
xiaoseqingch
Rank: 2
等 级:论坛游民
帖 子:36
专家分:42
注 册:2010-6-19
收藏
得分:0 
回复 3楼 yafei900914
如何声明呢。。我的好像已经声明了啊。

char *fan(char *arr)

int fun(char *p)
就这两个。
2012-07-22 13:23
xiaoseqingch
Rank: 2
等 级:论坛游民
帖 子:36
专家分:42
注 册:2010-6-19
收藏
得分:0 
回复 2楼 netlin
编译环境 vc6.0
2012-07-22 13:34
随风飘荡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:208
专家分:598
注 册:2011-9-9
收藏
得分:2 
估计跟编译器实现有关,其实两个应该都有问题,都没有声明。

关于函数声明百度一下就有了(http://www.neu.

不声明也可以但是你要把函数原型放到主函数之上。
2012-07-22 18:28
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:2 
不太懂,顶一下

实现自己既定的目标,必须能耐得住寂寞单干。
2012-07-22 19:11
快速回复:求助。。。简单的函数顺序问题
数据加载中...
 
   



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

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