Restituire le posizioni degli spazi da un array di stringhe

di il
3 risposte

Restituire le posizioni degli spazi da un array di stringhe

Salve,
ho a disposizione un array di stringhe e devo creare una funzione che restituisca le posizioni del carattere " " (spazio) all'interno delle stringhe attraverso un array.
Ho questo array di stringhe (che naturalmente è un array bidimensionale) chiamato ad esempio
char stringhe[NUMSTR][LUNGMAX];
che,supponiamo,contenga già le stringhe al suo interno.
Quello che non riesco a fare è scorrere carattere per carattere ogni stringa per poter salvare le posizioni degli spazi.
Scorrendo la prima dimensione (NUMSTR) dell'array scorro tutte le stringhe complete,però quello che non riesco a fare è scorrere una stringa singolarmente per verificare le posizioni in cui ci sono gli spazi. Lascio qui un abbozzo della funzione..
Grazie mille a chiunque possa darmi una mano..

#define NUMSTR 100
#define LUNGMAX 100

int *count(char[][],int,int);

int main(int argc, char *argv[])
{
char stringhe [NUMSTR][LUNGMAX];

// QUA DOVREI CHIAMARE LA FUNZIONE

system("PAUSE");
return 0;
}

// FUNZIONE CHE CONTA

int *count( char c[][],int numstr,int lungmax){
int *p=(int*)malloc(50*sizeof(int));

for(int i=0;i<numstr,i++) // COSI' SCORRO STRINGA PER STRINGA L'ARRAY

// ORA MI SERVIREBBE SCORRERE CARATTERE PER CARATTERE OGNI STRINGA

}

3 Risposte

  • Re: Restituire le posizioni degli spazi da un array di stringhe

    Ciao,

    All'interno della prima for, c sarà un char*... considera il codice seguente:
    
    char *tmp=c[i];
    while(*tmp){ //Implicito !='\0'
      if(*tmp==' ') p[i]++;
      tmp++;
    }
    NB: Non mi è chiaro perché di interi ne allochi solo 50 se hai 100 stringhe...

    Ciaociao
  • Re: Restituire le posizioni degli spazi da un array di stringhe

    Ciao
    ho scritto 50 invece di 100,è un errore di distrazione

    Però quello che devo fare nel programma non è CONTARE gli spazi vuoti ma restituire le posizioni di ogni spazio vuoto per ogni stringa..
    Pensi di potermi aiutare?
  • Re: Restituire le posizioni degli spazi da un array di stringhe

    Ciao,

    Invece di usare p++... se la if è vera tmp punta allo spazio.

    Se vuoi memorizzare il puntatore, esso sta, appunto, in tmp.
    Se invece vuoi memorizzare un numero che indica l'offset dello spazio dall'inizio della stringa, allora tmp-c è quel numero...

    Mi sembra però che ci possa essere un problema... tu allochi 100 interi in p... ma in una stringa ci può essere più di uno spazio vuoto (e tu hai solo un intero a disposizione per ogni stringa).

    Ciaociao
Devi accedere o registrarti per scrivere nel forum
3 risposte