首页
社区
课程
招聘
[旧帖] [求助]一道C语言问题 0.00雪花
发表于: 2010-12-28 00:43 1175

[旧帖] [求助]一道C语言问题 0.00雪花

2010-12-28 00:43
1175
#include<stdio.h>
char *find_char(char const *source,char const *chars);

main()
{
  char source[10];
  char chars[10];
  char *p;
     gets(source);
      gets(chars);

   p=*find_char(source,chars);
  printf("%0x",p);
  getch();
  
}

char *find_char(char const *source,char const *chars)
{

  for(;*source!="\0";source++)
  {
          printf("%0x\n",source);
          if(*source==*chars)
          {
             return source;
                 break;
          }
          else {
          
             chars++;
          
          }
  
  }

  return NULL;

}

这是一道C语问题。题目以附件图片形式给出了。上面代码是我写的,,可是得到的结果好像不对。还有如果对source和chars这两个量输入的初值位数不一样(没有匹配的字符)怎么得到的结果总是ffffffcc;另为什么在main函数中输出只有两位数啊?

请高人指点一二。。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2317
活跃值: (1898)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
菜鸟诚心求教。。。

请会做的朋友给一点指导。。感谢。
2010-12-28 00:52
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
char *find_char(char const *source,char const *chars)
{
char *t = chars;
  for(;*source!="\0";source++)
  {chars=t;
    for(;*chars!=0;chars++){
    printf("%0x\n",source);
    if(*source==*chars)
    {
       return source;
     break;
    }
    }   
  
  }

  return NULL;

}
2010-12-28 08:14
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
p=*find_char(source,chars);
错了;
p=find_char(source,chars);
2010-12-28 08:17
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是啊 你定义的函数 char *find_char(char const *source,char const *chars);

函数名是 find_char  前面的char* 是返回值类型,它是个字符指针类型的。

还有在外层循环判断字符串结尾的\0字符时应该用'\0'单引号表示字符,双引号是字符串。如果你写"\0"系统会自动往后面添加个0作为结束标志。即系统中的字符串是00,而*source表示的是一个字符,肯定不会与00相等。
for(;*source!="\0";source++)

我说的有不准确的地方欢迎指正啊,大家共同进步。
2010-12-28 10:08
0
雪    币: 2317
活跃值: (1898)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢上面几位朋友的指点。。。谢谢了。
2010-12-28 17:53
0
游客
登录 | 注册 方可回帖
返回
//