PDA

View Full Version : [C] Progr per dividere le parole di una stringa in tante più piccole


Markycap
20-01-2011, 21:18
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int separa(char frase[80]){
int status=0;
return status;
}
main() {
char frase[80];
int i=0;
int m=0;
int n=0;
char elencoParole[20][20];
printf("Inserisci la frase: \n");
for(i=0; ((frase[i]=getchar()) != '\n') && (i<79); i++);
for (i=0;i=79;i++)
{
if (frase[i]==' ')
{
m++;
n=0;
}
else
{
elencoParole[m][n]=frase[i];
n++;
}
}
system("PAUSE");
}

Vi prego sono 2 giorni che sono bloccato qui... :muro: :muro: :muro: :muro: qualcuno ha delle dritte? La traccia è questa:

"Costruire una funzione che separa le parole di una frase, formata al più da 80 caratteri, eliminando gli spazi vuoti. In altre parole ha in input: char frase [80] e in output: elencoParole [][20]
Inoltre la funzione se in elencoParole c’è almeno un numero reale, ossia una parola formata solo da caratteri numerici e dal punto decimale
allora restituisce il valore 1
altrimenti restituisce il valore 0"

Il programma si blocca all'assegnamento del carattere da un array ad un altro.

Grazie a chiunque mi voglia aiutare! ;)

Supdario
21-01-2011, 17:32
Basta usare la funzione strtok del C.

Piccolo esempio:

char stringa[] = "Sono una stringa";
char elencoParole[20][20];
char *ptr;
int i = 0;
ptr = strtok(stringa, " ");
while (ptr != NULL)
{
strcpy(elencoParole[i++], ptr);
ptr = strtok(NULL, " ");
}


Non l'ho provato, ma sulla carta dovrebbe andare.

Markycap
21-01-2011, 17:46
Provo e ti dico ;)

Markycap
21-01-2011, 21:06
Funziona! :) Ti ringrazio ;)