简单程序出错

simaping 2007-12-22 02:38:58
题目是在一个字符串中查找所有在一个给定字符集合中出现的字符,即查找source中匹配chars中任何字符的第一个字符,函数然后返回一个指向source中第一个匹配所找到的位置的指针。如果source指向ABCDEF,chars指向XRCO,函数返回一个指向source中C字符的指针。
各位帮忙看下我写的这段哪里有问题?
#include<stdio.h>
char *findchar(char *source, char *chars);

main()
{
char string[10];
char str[10];
char *t;
gets(string);

fflush(stdin);
gets(str);

if((t=findchar(string,str))!=NULL)
printf("%c",*t);
else printf("error");
}
char *findchar(char *source, char *chars)
{
while(*source!='\0')
{
while(*chars!='\0')
{
if(*source==*chars)
return source;
else chars++;
}
source++;
}

return NULL;
}
...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn5211 2007-12-22
  • 打赏
  • 举报
回复
char *findchar(char *source, char *chars)
{
  char× p = chars;
while(*source!='\0')
{
while(*chars!='\0')
{
if(*source==*chars)
return source;
else p++;
}
source++;
  p = chars;
}

return NULL;
}
csdn5211 2007-12-22
  • 打赏
  • 举报
回复
char *findchar(char *source, char *chars)
{
while(*source!='\0')
{
while(*chars!='\0')
{
if(*source==*chars)
return source;
else chars++;
}
source++;//此时chars已经指向字符串的末尾了,值是'\0'当然匹配不上了!
}

return NULL;
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧