Ciao! Sono alle prese con le funzioni per manipolare le stringhe, dovrei scrivere un programma che generi delle frasi casuali usando le parole contenute nei vettori di puntatori.
Il codice mi sembra corretto, il problema è che quando compilo restituisce un errore.
Se provo ad usare il debugger e avanzo linea per linea, quando arrivo al comando
strcat(v, strcat(noun[rand()%5], " "));
mi restituisce un messaggio con scritto "segmentation fault".
Qualche consiglio utile?
Grazie!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
int main()
{
char *article[5]={"the", "a", "one", "some", "any"};
char *noun[5]={"boy", "girl", "dog", "town", "car"};
char *verb[5]={"drove", "jumped", "ran", "walked", "skipped"};
char *prep[5]={"to", "from", "over", "under", "on"};
char v[40];
srand(time(NULL));
sprintf(v, "%s ", article[rand()%5]);
strcat(v, strcat(noun[rand()%5], " "));
strcat(v, strcat(verb[rand()%5], " "));
strcat(v, strcat(prep[rand()%5], " "));
strcat(v, strcat(noun[rand()%5], "\n"));
printf("%s", v);
return 0;
}