PDA

Visualizza la versione completa : [C] Contare occorrenze di un carattere specifico in una stringa


vfldj
11-01-2013, 22:06
Devo scrivere un programma che, passati come parametri una stringa ed un carattere inseriti da tastiera, mi restituisca il numero in cui il carattere è presente nella stringa.
Il metodo l'ho scritto e penso sia giusto solo che non riesco a provarlo perchè non riesco a salvare un singolo carattere.

Ho scritto 2 versioni:


char str[N];
char a;

printf("\nInserisci una stringa: ");
scanf("%s", str);

printf("\nInserisci un carattere: ");
scanf("%c", a);




char str[N];
char a;

printf("\nInserisci una stringa: ");
scanf("%s", str);

printf("\nInserisci un carattere: ");
a = getchar();


Entrambe non vanno e non capisco il perchè..
La seconda versione mi salva come carattere il \n..
Come posso modificare?

Grazie

oregon
11-01-2013, 22:50
scanf("%c", &a);

vfldj
11-01-2013, 22:58
Originariamente inviato da oregon
scanf("%c", &a);
Ho provato anche così.. anzi ho fatto proprio così.. ho sbagliato a copiare il codice sopra..

oregon
11-01-2013, 23:05
Devi anche pulire il buffer di input dopo la scanf. Se fai una ricerca nel forum se n'è parlato centinaia di volte.

vfldj
11-01-2013, 23:12
Originariamente inviato da oregon
Devi anche pulire il buffer di input dopo la scanf. Se fai una ricerca nel forum se n'è parlato centinaia di volte.
Ho provato a cercare ma non ho trovato.. riprovo..

vfldj
11-01-2013, 23:22
char str[N];
char a;

printf("\nInserisci una stringa: ");
scanf("%s", str);
fflush(stdin);
printf("\nInserisci un carattere: ");
scanf("%c", &a);


Anche così non va..

oregon
11-01-2013, 23:27
Lavori con Linux o Windows?

vfldj
11-01-2013, 23:31
Originariamente inviato da oregon
Lavori con Linux o Windows?
Linux

oregon
11-01-2013, 23:33
Allora avrai letto che non puoi usare la

fflush

Devi usare un ciclo while come riportato in tanti thread su questo stesso forum

vfldj
11-01-2013, 23:36
no non l'ho letto perchè non l'ho trovato..

Loading