Salve a tutti sono alle prime armi con il C. stavo provando a fare un semplice programmino che data una stringa ne inverte le cifre.
Ho scritto il seguente codice, che compila senza errori ma poi si blocca subito. Dove ho sbagliato? Grazie a tutti per l'aiuto
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//prototipi delle funzioni
void inverti(char*s);
void swap(char *pa, char *pb);
int main()
{
printf("Programma in c che inverte le cifre di un numero......!\n");
printf("\n");
char x[5];
int i;
printf("inserisci numero da invertire...\n");
for(i=0;i<=4;++i)
{
scanf("%c",x[i]);
}
printf("\n");
inverti(x);
printf("numero invertito:\n \n");
for(i=0;i<=4;++i)
{
printf("%c",x[i]);
}
return 0;
}
//implementazione delle funzioni
void swap(char *pa, char *pb) {
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void inverti(char*s)
{
int i=0;
int j;
j=strlen(s)-1;
while(i<j)
{
swap(s[i],s[j]);
i++;
j--;
}
}