Allora io nel frattempo ho provato ad usare la strtok e ho fatto cosi
while(fgets(riga, 100, fp))
{
p=strtok(riga, ";");
for(; *p!='\0'; *p++)
{
if(*p>='!' && *p<='/')
{
fprintf(fp, "%c", *p=*argv[1]);
}
printf("%c", *p);
}
printf("\n");
}
se mando in output sullo stdout, e quindi levo la fprintf nell'if e scrivo solo *p=*argv[1]; l'output è corretto. mentre con la fprintf mi da come output sul file questo:
03-01-2016;IKEA BARONISSI IT;-32.20
//-01-2016;Rimborso missione;47.00
//-02-2016;Amazon Mktplce EU-IT LU;-19.50
//-02-2016;DECATHLON ITALIA SRL IT;-118.07
//-05-2016;AUTOSTRADA CASELLO IT;-0.90
//