我需要一个函数来在不使用任何索引的情况下从 C++ 中的 char 数组中删除某些字符

I need a function to delete certain characters from a char array in c++ without using any index

例如: 如果用户输入: (23+22+43)

我希望函数完全执行以下操作:

for(int i =0; i <strlen(x);i ++)
{
   if (x[i]=='+')
   {
     deletfunc(x[i]);
     deletfunc(x[i+1]);
     cout<<x;
   }
}

所以输出将是(2323)

不使用索引 ----> 不知道数组中字符的确切数量,例如我不能说 deletefunc[3] ,我不知道 + 是第三个还是第四个还是第二个元素等等,+ 可能会重复多次。

如果有人可以帮助我,我已经尝试完成这个任务 4 天了

通常在使用 C 风格的字符串时,教师会说,“没有索引!”他们希望你使用指针。

这是您可以使用指针的一种方式

char * p = x; // point p at start of array x
while (*p) // loop until p points to the null terminator - the end of the string
{
    if (*p=='+') // if value at p is +
    {
        deletfunc(p - x); // distance between p and x is index
        if (*(p+1)) // make sure there is a p+1 to erase
        {
            deletfunc(p+1 - x); 
        }
    }
    p++; // advance pointer to next character in array x
}
cout << x; // print revised string