Salve a tutti,
ho un problema da risolvere quanto prima possibile.
Il mio professore di informatica ci ha dato degli esercizi da svolgere in C++. Niente di difficile, però ho riscontrato un problema alquanto strano nel

mio programmino.
L'esercizio in questione è:
"Si scriva un programma che, dopo aver letto N stringhe da tastiera, verifichi se ogni stringa è PALINDROMA oppure

no. Una parola è PALINDROMA se è la stessa quando è letta di sinistra a destra e da destra a sinistra (esempio: OTTO; POROP etc.)"
Vi mostro come ho scritto il codice.
MAIN.CPP
codice:
 #include <cstdlib>
#include <iostream>
#include <string.h>
#include "second.h"

using namespace std;

int main(int argc, char *argv[])
{
    system("color F");
    vettore vet;
    int riemp,x;
    leggiStringa (vet, riemp);
    cout << endl << endl;
    stampaStringa (vet, riemp);
    cout << endl << endl;
    palindroma (vet, riemp);
    cout << endl << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
SECOND.H
codice:
#ifndef SECOND_H
#define SECOND_H
#define N 100
typedef char stringa [256];
typedef stringa vettore [N];

void leggiStringa (vettore, int & );
void stampaStringa (vettore, int);
void palindroma (vettore, int);
void inizializza (stringa);
#endif
SECOND.CPP
codice:
#include <cstdlib>
#include <iostream>
#include <string.h>
#include "second.h"

using namespace std;

void leggiStringa (vettore v, int &r){
    stringa parole;
    cout << "Inserire il riempimento del vettore! MAX 100"<<endl;
    do 
        cin >> r;
    while (r<=0 || r>100);
    cout << endl;
    for (int i=0; i<r; i++){
        cout << "V["<< i << "]= ";
        cin >> parole;
        strcpy(v[i],parole);
    }
}
    
void stampaStringa (vettore v, int r){
    for (int i=0; i<r; i++){
        cout << "V["<< i <<"]= "<< v[i] << endl;
    }
}

void inizializza (stringa s){
    for (int i=0; i<=0;i++)
        s[i]='\0';
    }
void palindroma (vettore v, int r){
    stringa s,t;

    int n, x, j, k;
   for (int i=0; i<r; i++){
        inizializza (t);
        strcpy (s, v[i]);
    
        n= strlen (s);
        for (k=0, j=n-1; k<=n-1, j>=0; k++, j--){
            t[k]=s[j];
             cout << "T["<<k<<"]= S["<<j<<"]: "<<t[k]<<endl;
        }
        cout << endl<<endl;
            cout << "S= " << s <<endl;
            cout << "T= " << t <<endl;
            x= strcmp (s,t);
            cout << x << endl<<endl;
            if (x==0)
                cout << "La parola e' palindroma"<<endl;
            else
                cout << "La parola non e' palindroma"<<endl;
            inizializza (t);
            cout << "T= "<< t << endl <<endl;
            cout << "___________________________________"<<endl<<endl;
            }
}
Non guardate il codice "palindroma" che è un casino, l'ho fatto così solo per controllare ogni passaggio nella speranza di comprenderne l'errore, ma

invano.

Non vi spiego a parole l'errore, ma vi lascio uno screen di una prova:


Un primo errore che non riesco a risolvere è che la stringa T non è inizializzata ad una stringa vuota (Come posso farlo?) EDIT: ho modificato il codice, ma resta il problema che la stringa t ha dei caratteri di troppo :|

Il secondo errore è quel maledetto carattere dopo la stringa "miuccido"... Che cavolo di problema è?
Spero di essere stato chiaro!
TheEnigmist