Usuwanie znaku z łancucha

0

Witam,
Wczytuje z klawiatury linie a następnie dzielę ja na argumenty. Mam stworzoną tablice z argumentami

char *arg[10]

i funkcje która ma sprawdzać czy ostatnim argumentem jest znak '&', i jeżeli jest to ma usunąć ten argument z tablicy i zwrócić 1. Funkcja wygląda tak:

int proces_w_tle(char **arg, int n){
    int i=0;
    for(i=0 ; i<n; i++)
        if(!strcmp(arg[i],"&")){
            *arg[i]='\0';
            return 1;
        }
} 

No i w tej chwili ta funkcja usuwa mi znak ale np. jak mam jeszcze jakieś argumenty za & to je wypisuje, a ja chcę zrobić żeby po odczytaniu tego znaku usuneła go i tablica kończyła się w tym miejscu. Jak coś takiego zrobić?

0

Wywal tą funkcję i wyświetlaj zawsze tak:

  for(i=0;(i<n)&&(strcmp(arg[i],"&"));++i) printf("%s\n",arg[i]);
0

Bo chodzi mi oto że jak wywołam przez execvp("ls",arg) "ls" to jak mam argument & w tablicy to mi nie działa...

0
void proces_w_tle(char **arg,int n)
  {
   int i=0;
   for(i=0;i<n;++i) if(!strcmp(arg[i],"&")) arg[n=i]=NULL;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1