#include <stdio.h>
void modifica(char **v, int n)
{
int i,j;
char *app;
for (i = 0; i < n-1; ++i)
for(j = i+1; j < n; ++j)
if ( (v[i][ strlen(v[i])-2 ] == v[j][0]) && (v[i][ strlen(v[i])-1 ] == v[j]
[1]) )
{
v[i] = (char *) realloc(v[i],strlen(v[i])+strlen(v[j])-2+1);
strcat(v[i],v[j]+2);
break;
}
}
main()
{/* programma principale */
char *vett[7], buffer[21];
int i;
FILE *p;
p=fopen("dati2.txt","r");
for (i=0;i<7;++i) {
fscanf(p,"%s",buffer);
vett[i]=(char *)malloc(strlen(buffer)+1);
strcpy(vett[i],buffer);
}
fclose(p);
for (i=0;i<7;++i) printf("vett[%d]=%s\n",i,vett[i]);
modifica(vett,7);
printf("\n");
for (i=0;i<7;++i) printf("vett[%d]=%s\n",i,vett[i]);
}
Programma sui vettori.
Il programma, dato un vettore di dimensione a scelta di stringhe contenenti tre o più caratteri (escluso il terminatore di stringa). Si aggiunge ad ogni stringa date una serie di parole come nell'esempio qua sotto, prendendo due lettere finali di ogni parola bisogna cercare la parola successiva che inizia con quelle due lettere e attaccarla a quella successiva; se non c'è, si salta a quella dopo.
Ad esempio, se il vettore contiene le seguenti stringhe:
- Natale
- Gesu
- Vita
- Sun
- Lettere
- Renna.
Dovrà essere trasformato nel seguente vettore:
- Natalettera
- Gesun
- Vita
- Sun
- Letterenna
- Renna