Bonjour,
Pour commenter le code proposé par fenomen je ne vois pas l'utilité du malloc.
Le malloc est utilisé pour une allocation dynamique, Or ici c'est clairement du statique : la taille du tableau est connue à l'avance.
Plutôt que de faire
char *car;
car = (char*)malloc(27*sizeof(char));
Je serai d'avis de directement faire ceci :
#define BUF_MAX_SIZE 27
void
main()
{
char car[BUF_MAX_SIZE];
/* Mise à 0 */
memset(&car, 0, BUF_MAX_SIZE);
printf("Entrez un mot: \n");
scanf("%s",car);
printf("le nombre de caracteres est : %d",strlen(car));
getch();
}
memset permet de s'assurer que tout le tableau contient des 0, ce qui permet d'être certain que notre chaine de caractère copie grâce à scanf se termine par un '\0'
Après, je pense que scanf() termine la chaine de caractère copiée par un '\0' donc le memset n'est pas obligatoire... a priori.
Maintenant, reproduire strlen n'est pas des plus compliqués, à partir du moment où l'on sait faire des itérations sur un tableau et que l'on sait aussi par quoi se termine une chaine de caractère.
Bon courage,
c-moi