Salve a tutti , sto cercando di risolvere il seguente problema: "data una stringa di caratteri, lunga al massimo 300 caratteri, inserire il carattere * (asterisco) dopo ogni lettura del carattere A che si trova in essa e far stampare la stringa così ottenuta". Ho pensato che per aggiungere tale carattere ' * ' dopo la lettera A ,bisogna spostare tutti gli elementi di una posizione, (compreso il carattere nullo di fine stringa), così da liberare
l' elemento che segue tale lettera ,per aggiungere l'asterisco. Ho scritto il seguente codice, ma quando lo vado ad eseguire non funziona.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define card 300
main()
{
char Vet[card],c;
int i=0,j, riemp=0;
int pos=0;
//inserimento stringa
printf("inserisci stringa\n\n");
while((c=getchar())!='\n'&&i<card ){
Vet[i]=c;
i++;
riemp++;
}
Vet[i]='\0';
//inserimento del carattere asterisco
for(i=0;i<riemp;i++){
if(Vet[i]=='a'){
pos=(i+1);
if(pos<card){
for(j=(riemp+1);j>=pos;j--)
Vet[j]=Vet[j+1];}
Vet[pos]='*';
riemp++;
}
}
//stampa stringa modificata
i=0;
while(Vet[i]!='\0'){
printf("%c",Vet[i]);
i++;
}
system("Pause");
}