ciao a tutti,avrei un problema,stavo cercando di realizzare un programma che permettesse,una volta inserite 3 stringhe in una matrice,di cercare una lettera a scelta e tenerne il conto per ogni singola riga.Tentando e ritentando sono arrivato qui
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char mat[3][20];
int i,j,c;
char search;
for(i=0;i<3;i++)
{
printf("\n parola %d \n",i+1);
scanf("%s%*c",mat[i]);
printf("\n");
}
printf("inserisci lettera da cercare: ");
scanf("%c",&search);
printf("\n\n ora conteggerò le %c presenti in ogni parola\n",search);
for(i=0;i<3;i++)
{
c=0;
for(j=0;j<20;j++)
{
if(mat[i][j]==c)
{
c++;
}
}
printf("\n nella parola %d ci sono esattamente %d lettere %c \n",i+1,c,search);
}
printf("\n\n controlla tu stesso!\n");
for(i=0;i<3;i++)
{
printf("riga %d",i+1);
for(j=0;j<strlen(mat[i]);j++)/*strlen(mat[i]) fa in modo che vengano stampate solo le lettere nella stringa i,in modo da non stampare il contenuto delle
delle celle avanzate,quindi j<lunghezza della riga i-esima della matrice*/
{
printf("%2c",mat[i][j]); /*attenzione qui ho messo %c invece che %s perchè non viene considerata la stringa,ma ,invece,viene immesso
ogni singolo carattere ogni volta*/
}
printf("\n\n");
}
system("PAUSE");
return 0;
}
il problema penso sia da attribuire all'if,ho pensato che così facendo sarebbe andato a confrontare ogni singola cella con la lettera scelta,ma non sono molto sicuro del fatto che si possa impostare in quel modo. Come risultato,indipendentemente da quello che scrivo o cerco è sempre 1 1 2, anche se non c'è nemmeno la lettera cercata esce sempre quella combinazione.Devo aver fatto un errore enorme e che solo io non sono capace di vedere grazie ciao!