PHP Code:
/*
*
*array w di puntatori a stringhe.
*definire una funzione con il seguente prototipo char * getVocali (chat * ).
*prende come parametro il puntatore alla stringa s e
*restituisce un puntatore a una nuova stringa composta da solo le vocali
*in s al vettore originario
*applicate tale funzione a ogni elemento array
*
*/
PHP Code:
#include <st***.h>
#include <string.h>
#include <stdlib.h>
#define INPUT 100
#define INPUT_S "99"
char * getvocali (char * a); // prototype
int main(void){
unsigned int n;
char ** vet_s; // vet a char
char buf[INPUT]; // buffer temporaneo
int i; // indice
////////////////////////////////////////////////////////// numero stringhe
printf("Numero elementi:\n");
scanf("%u",&n);
vet_s = (char **) malloc ( n * sizeof(char *));
////////////////////////////////////////////////////// inserimento dati
for (i=0;i<n;i++){
printf("Inserire la %d stringa\n",i+1);
scanf("%" INPUT_S "s",buf);
*(vet_s + i) =strdup(buf);
}
////////////////////////////////////////////////////// fine inserimento dati
////////////////////////////////////////////////////// stampa dati
printf("\nStringhe inserite:\n");
for(i=0;i<n;i++){
printf("%s\n",*(vet_s + i));
}
////////////////////////////////////////////////////// chiamata a getvocali
for (i=0;i<n;i++){
*(vet_s + i) = getvocali (*(vet_s + i));
}
////////////////////////////////////////////////////// stampa stringhe e free dei dati
printf("\nStringhe con solo le vocali:\n");
for(i=0;i<n;i++){
printf("%s\n",*(vet_s + i));
free(*(vet_s + i));
}
free(vet_s);
return 0;
}
char * getvocali (char * a){
int i; // indice
int j=-1; // indice vocali
char buffer[INPUT]; // buffer
////////////////////////////////////////////////////// verifica presenza vocali e inserimento tappi
for(i=0;*(a+i)!=0;i++){
if(*(a+i)=='a' || *(a+i)=='e' || *(a+i)=='i' || *(a+i)=='o' || *(a+i)=='u'){
j++;
*(buffer + j) = *(a+i);
}
}
*(buffer + j + 1) = 0;
////////////////////////////////////////////////////// free dei vecchi dati prima di restituire e perdere il puntatore
free(a);
return strdup (buffer);
}