Salve ragazzi...So che non è bellissimo come primo messaggio chiedervi un favore...Però questo che vi chiedo è più una semplice verifica...
Ora vi spiego...Avendo ancora le idee un pò confuse su quella che può essere la differenza tra un array di caratteri e una stringa (che la stringa finisce con il terminatore e l'array di char lo so...non sono arrivato a questo punto )...c'era un esercizio che ho provato a fare...Funziona...Ma non so se magari ho sbagliato ad usare la stringa..
Ora vi spiego...l'esercizio consiste nel creare due stringhe, una allocata dinamicamente e una allocata staticamente, in cui vanno inseriti passo dopo passo i singoli caratti immessi in Input, senza usare le funzioni standard come lo strcat..
Ora io ho scritto questo:
Ora..come segnato in rosso, la domanda riguarda la stringa allocata dinamicamente (nel sorgente ho dimenticato di liberare la memoria allocata, poi rimedio)..Nonostante l'output sia perfetto e senza sbavature, mi chiedo...Posso usare in quel modo una stringa dichiarata con puntatore e allocata dinamicamente (cioè con le parentesi quadre per inserire i caratteri nei rispettivi indirizzi di memoria)?#include <stdio.h>
void main()
{
int i, size;
char carat;
char stringa_statica[20];
char *stringa_dinamica;
printf("Quanti caratteri vuoi inserire?(MAX20): ");
scanf("%d", &size);
printf("\n\n");
stringa_dinamica = (char *) malloc(size+1);
for(i=0; i<size; i++)
{
fflush(stdin);
printf("%d^ Carattere: ", i+1);
scanf("%c", &carat);
printf("\n");
stringa_statica[ i ]=carat;
stringa_dinamica[ i ]=carat; <--- La domanda riguarderà questa riga di codice
printf("\n");
}
//Assegno i terminatori nel punto SIZE (essendo l'ultimo carattere in size-1)
stringa_dinamica[size]='\0';
stringa_statica[size]='\0';
printf ("\nLa stringa STATICA e' <%s>",stringa_statica);
printf ("\nLa stringa DINAMICA e' <%s>\n",stringa_dinamica);
system("PAUSE");
}
E poi..la prima stringa, chiamata stringa_statica , in realtà è un array di char e no una stringa per come è stata dichiarata o sbaglio?
Si forse ho un pò le idee confuse tra array di char e stringhe