PDA

View Full Version : [c] Programma con funzione e stringe


Carlos:.
25-06-2010, 16:58
sto sviluppando un programma che data una parola in input elimina le vocali (tranne la prima se c'è) e ti dà in output la parola modificata e il numero di vocali eliminate, per fare il tutto devo usare una funzione esterna a intmain() che ti riesce a far fare tutte e due le cose, il problema è che non mi parte e facendo un pò di tentativi sono riuscito a farlo partire ma in svolgimento mi dà un errore di windows, non oso nemmeno immaginare cosa abbia sbagliato... ci sto perdendo un sacco di tempo senza trovare una soluzione, ecco il programma:

#include <stdlib.h>
#include <stdio.h>

int EliminaVocaliNonIniziali (char &);

int main(){
char parola[20];

printf("inserire parola:");
gets(parola);
printf("le vocali eliminate sono:",EliminaVocaliNonIniziali (*parola));
printf("la stringa finale è: %s", parola[20]);
system ("PAUSE");
return 0;
}

int EliminaVocaliNonIniziali (char &parola[20])
{
int i=0,a=1,c=0;
for (i=1; i<=20; i++)
{
if((parola[i]!='a') && (parola[i]!='e') && (parola[i]!='i') && (parola[i]!='o') && (parola[i]!='u'))
{
parola[a++]=parola[i];
c++;
}
}
return c;
}



grazie a tutti quelli che mi aiuteranno.

cionci
25-06-2010, 19:17
Magari riporta gli errori...

Comunque, quelli macroscopici:

int EliminaVocaliNonIniziali (char &parola[20])

Il C non ha il passaggio per riferimento, ma solo per puntatore o per valore.
Tra l'altro il prototipo non corrisponde all'implementazione.

redento
25-06-2010, 20:08
Consiglio anch'io un bel ripasso delle basi. :)
Una possibile implementazione al tuo problema è la seguente, senza badare troppo alla complessità computazionale. ;)
[Edit, vedere in fondo la motivazione]
:gluglu: