job_baiqiang
2019-03-22 11:38
采纳率: 100%
浏览 566

C库函数strstr实现中为什么要用新建const char*变量代替参数?

const char * IND(const char * str, const char * substr)
{
assert(substr != NULL && str != NULL);
const char * psub = substr;
const char * pstr = str;

while (*pstr)
{
    const char * tmp = pstr;
    while (*tmp++ == *psub++);

    if (*psub == '\0')
        return pstr;

    psub = substr;
    pstr++;
}

return NULL;

}

为什么要
const char * psub = substr;
const char * pstr = str;
const char * tmp = pstr;
而不是直接操作

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2019-03-22 12:02
    已采纳

    你的程序改变了psub和pstr,而psub = substr;这一行需要用它初始的值。就必须要再定义变量赋值了。

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题