Buonasera e Buon Natale a tutti.
Sto facendo per esercizio un programma in C che, data una stringa in ingresso, me la inverte. Il tutto usando i puntatori.
Il listato che ho fatto è il seguente:
Il problema e che alla stringa inversa mi accoda dei caratteri spuri che non so come eliminare.
Un esempio di output è il seguente:
Come potete vedere nella parola inversa ci sono due caratteri in più.
Qualcuno mi sa suggerire come fare in modo che non ci siano?
Grazie.
Sto facendo per esercizio un programma in C che, data una stringa in ingresso, me la inverte. Il tutto usando i puntatori.
Il listato che ho fatto è il seguente:
C:
#include <stdio.h>
#include <string.h>
#define MAXDIM 10
int main(void) {
char parola[MAXDIM], inversa[MAXDIM], *p = parola, *t = inversa;
int lunghezza;
printf("\nInserisci una parola: ");
fgets(parola, sizeof(parola), stdin);
parola[strcspn(parola, "\n")] = '\0';
lunghezza = strlen(parola);
for(p = parola + lunghezza - 1; p >= parola; p--) {
*t = *p;
t++;
}
printf("\nLa parola inserita è: %s", parola);
printf("\n\nLa parola inversa è: %s", inversa);
}
Il problema e che alla stringa inversa mi accoda dei caratteri spuri che non so come eliminare.
Un esempio di output è il seguente:
Codice:
Inserisci una parola: prova
La parola inserita è: prova
La parola inversa è: avorp��
Come potete vedere nella parola inversa ci sono due caratteri in più.
Qualcuno mi sa suggerire come fare in modo che non ci siano?
Grazie.