指针指向数据:0256111333334a66666666666666666666a52235656536sssa6666666622581242a33333a2222a4444446233322222a现在要求
删除第n个a前面的一串数据
然后保存后面的数据怎么做?

解决方案 »

  1.   

    int n = 3;
    char str[] = "0256111333334a66666666666666666666a52235656536sssa6666666622581242a33333a2222a4444446233322222a";
    char* p = str;
    for(int i = 0; i < n; i++)
    {
      p = strchr(p,'a');
      if(!p)
      {
         //没有那么多个a
         return FALSE;
      }
      p++;
    }
    char * pNewString = strdup(p);
    return pNewString;
      

  2.   

    char str[]="0256111333334a66666666666666666666a52235656536sssa6666666622581242a33333a2222a4444446233322222a";
    char *temp=str;
    char *p=NULL;
    int i,n=3;
    for(i=0;i<n;i++)
    {
    p = strstr(temp,"a");
    if(p!=NULL)
    temp = p+1;
    else
    break;
    }
    if(i==n)
    {
    int j = strlen(str)-(p-str);
    memcpy(str,p,j);
    str[j]=0;
    }
    else
    {
    //指定的n太大
    }