Comment puis-je lire une entrée de chaîne de longueur inconnue?

Si je ne sais pas combien de temps le mot est, je ne peux pas écrire char m[6];,

La longueur du mot est peut-être dix ou vingt de long.
Comment puis-je utiliser scanf pour obtenir l'entrée à partir du clavier?

#include <stdio.h>
int main(void)
{
    char  m[6];
    printf("please input a string with length=5\n");
    scanf("%s",&m);
    printf("this is the string: %s\n", m);
    return 0;
}

veuillez saisir une chaîne de longueur=5

bonjour

c'est la chaîne: bonjour

  • utilisez le pointeur de realloc combinaison
  • Vous pouvez déposer le & dans scanf("%s",&m) depuis m est déjà un pointeur vers le premier élément de m[] dans cette expression.