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

Time:05-14

for example: if the user enters : ( 23 22 43)

I want the function to do exactly the following :

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

so that the output will be (2323)

without using index ----> without knowing the exact number of the char in the array for example I couldn't say deletefunc[3] , I don't know if is the 3rd or 4rth or 2nd element and so on and the maybe repeated more than once.

Please if anyone can help I had been trying do this task for 4 days now

CodePudding user response:

Usually when working with a C style string and the instructor says, "No indexes!" they want you to use a pointer.

Here is one way you could use a pointer

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
  • Related