Ciao, stavo facendo un esercizio con stringhe e puntatori, il codice sembra corretto l'output no..
il problema è:
con inserimento stringhe inferiore a 4 caratteri l'output scrive caratteri non digitati..
#include <cstdlib>
#include <iostream>
#include <stdio.h>
using namespace std;
/*
* Dichiarare due stringhe di uguale dimensione. Acquisire in una stringa una
* sequenza di caratteri, quindi copiare, usando i puntatori, tutti i caratteri
* dalla stringa acquisita all'altra, accedendo in modo indiretto a ciascuna
* delle locazioni delle due stringhe..
*/
int main(int argc, char** argv) {
char st1[10];
char st2[10];
char *p1, *p2;
cout << "Inserisci caratteri: ";
cin.getline(st1, sizeof(st1));
fflush(stdin);
p1 = &st1[0];
p2 = &st2[0];
do{
*p2 = *p1;
p1++, p2++;
}while(*p1!='\0');
cout << st2;
return 0;
}
OUTPUT: (fino al 4° carattere ovvero pos 3 da li in poi sempre corretto...)
Inserisci caratteri: c
cï a
RUN SUCCESSFUL (total time: 734ms)
----------------------------------------------
Inserisci caratteri: ci
ci a
RUN SUCCESSFUL (total time: 2s)
----------------------------------------------
Inserisci caratteri: cia
ciaa
RUN SUCCESSFUL (total time: 3s)
----------------------------------------------
Inserisci caratteri: ciao
ciao
RUN SUCCESSFUL (total time: 2s)