首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C: strchr指针值不变

C: strchr指针值不变
EN

Stack Overflow用户
提问于 2013-02-07 04:07:14
回答 1查看 353关注 0票数 0

我正在尝试使用C程序递归地搜索字符串中的子字符串。我写了下面这段代码。我面临的问题是,虽然ptr值打印正确的值(在while开头使用puts ),但usage的值没有改变!它使用之前的ptr值。我使用gdb发现了这一点。我想不出这是什么原因。请指导我解决这个问题。提前谢谢。

代码语言:javascript
复制
void main()
{
   char buf[10]="hello",*ptr;
   char findc[10]="lo";
   int len,i,lenf,k,l,flag=0;

   lenf=strlen(findc);
   l=0,k=1;
   ptr=strchr(buf,findc[l]);

   while(ptr!=NULL)
   {
      puts(ptr);
      l++;
      for(i=l;i<(lenf);i++,k++)
      {
        if(ptr[k] != findc[i])
        {   
          flag=1;
          break;
        }
      }

      if(flag==1)
      {
        l=0;k=1;
        ptr=strchr((ptr+1),findc[l]);

        if(ptr==NULL)
        {
           puts("String not found");
           break;
        }

      }
      else
      {   
          puts("String found");
        break;
      }
   }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 12:54:18

这是一个非常简单的错误!

我们必须在while循环开始时重置flag变量。这就解决了这个问题。

谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14737797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档