| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 748 人关注过本帖
标题:请教一个指针问题!(指针初学者)
只看楼主 加入收藏
mzx19871205
Rank: 2
等 级:论坛游民
帖 子:12
专家分:23
注 册:2010-4-2
收藏
 问题点数:0 回复次数:7 
请教一个指针问题!(指针初学者)
本题主要是编写一个函数,其功能是为搜索由第一个参数指定的字符串,再其中查找由第二个参数指定的字符的第一次出现的位置。如果找到,则返回指向这个字符的指针,否则返回空指针。主函数就是求出这个位置。
代码如下:
#include<stdio.h>
#include<string.h>
char *search(char *ps,char c1);
void main()
{
  char *str,c2,*p1,*p2;
  int i;
  printf("Please input the string and character:\n");
  gets(str);
  scanf("%c",c2);
  p1=search(str,c2);
  if(p1==NULL) printf("Cannot find the character!");
  else
  { i=1;
    for(p2=str;p2<str+strlen(str);p2++)
    { while(*p2!=*p1)
      i++;
      if(*p2==*p1)
     { printf("the posit of c1 is %d",i);
       break;
     }

    }
  }
  getch();

}
char *search(char *ps,char c1)
{ while(*ps!=c1)
  ps++;
  if(*ps==c1) return ps;
  else return NULL;
}
这道题可以运行,但是没有结果,大家帮忙看看谢谢!我是指针初学者。

[ 本帖最后由 mzx19871205 于 2010-5-3 07:49 编辑 ]
搜索更多相关主题的帖子: 指针 
2010-05-02 15:40
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
根据楼主要实现的功能,我写了一个。请楼主指教。
程序代码:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char* argv[])
{
    char c[100];
    char a;
    printf("请输入一个字符串:");
    gets(c);
    printf("请输入要检索的字符:");
    scanf("%c",&a);
   
    printf("%s",strchr(c,a));


    return 0;
}


南国利剑
2010-05-03 18:38
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
收藏
得分:0 
能运行?我想是因为你是用 TC 吧,正常在 gets(str); 这句就错了,str 的指向是没定义的。

一切只因为喜欢。
2010-05-03 22:58
lzdrifter
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-03 23:35
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
收藏
得分:0 
嗯问的好,但我也不懂啊。哈哈。。我只是试过,用TC编译的话,他并没有发现错误,貌似运行得还很快乐。
用VC6运行输入会弹出内存方面警告的对话框。TC为什么不能检测出这种内存越界错误,我就不知道了,我也
郁闷、、、

一切只因为喜欢。
2010-05-04 11:32
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 4楼 lzdrifter
这是编译器本身的差别。
vc的编译器有越界检查的功能,而tc的编译器没有这种功能。
但要注意越界是危险的。

南国利剑
2010-05-04 12:29
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
tc的程序就算越界了, 比如访问0地址, 也不会错. 但这是很危险的.

int a = *(int*)0;

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2010-05-04 13:03
lzdrifter
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-05 22:37
快速回复:请教一个指针问题!(指针初学者)
数据加载中...
 
   



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

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