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

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;这一行需要用它初始的值。就必须要再定义变量赋值了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 请问下这个红框里面是什么文档或者记事本编辑器
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号