codice:
typedef char tipo_stringa[255];
Anche questo non ha senso: stai dicendo che un array di tipo_stringa equivale a un char.
A mio parere, in questo esercizio non è necessario definire nuovi tipi di dato, ma se proprio lo vuoi fare allora puoi pensare che una stringa non è altro che un array di char. Quindi
codice:
typedef char* String
Questo è un MWE (Minamal Working Example):
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* String;
int main()
{
/* allocazione della stringa */
String m_string = (String) malloc(200 * sizeof(char));
printf("Inserire una stringa: ");
scanf("%s", m_string);
printf("Hai inserito %s\n", m_string);
/* allocazione di un'altra stringa */
String altra_string = (String) malloc(200 * sizeof(char));
/* copio nella seconda stringa il contenuto della prima */
strcpy(altra_string, m_string);
printf("Ripeto: %s\n", altra_string);
return 0;
}
P.S. In questo modo leggi una sola parola. Se invece vuoi leggere una frase intera (con gli spazi) allora puoi utilizzare la funzione fgets.