程序编译通过,运时行有错误.

dfczj 2007-06-16 11:46:29
程序编译通过,运时行有错误.
#include <stdio.h>
char* substr(char *src, char *sub)
{
char *tmp, *result;

tmp = sub;
while (1) {
while (*src == 0x20 && src++);
result = src;
while (*src++ == *tmp++ & src[-1] );
if (!tmp[-1] && (src[-1] == 0x20 || !src[-1]))
return result;

else if (tmp[-1] && src[-1] == 0x20)
;
else {
if (!src[-1])
return NULL;
while (*src++ - 0x20);
}
tmp = sub;
}
return NULL;
}
int main()
{
char *src="th is is a test";
char *sub="ihs";//如果改为src里能找到的字串,比如th is..则不会报错.
printf("%s\n",substr(src,sub));
system("pause");
return 0;
}
...全文
120 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bargio_susie 2007-06-16
  • 打赏
  • 举报
回复
报什么错啊...??

还有你这里while (*src++ == *tmp++ & src[-1] );这样也能运行对啊???
______________________________________________________________________
while (*src++ == *tmp++ && src[-1] );

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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