Calcul de la longueur d'une chaîne en c

Fermé
philippe - 16 mars 2007 à 07:52
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 19 mars 2007 à 19:31
bonjour,
il faut que je calcul la longueur d'une chaîne de caractére en langage c en utilisant la fonction 'strlen'

#include<stdio.h>
#include<string.h>

main()
{
char *string;
printf("entrez une chaine de caractére:\n);fflush(stdout);
scanf("%c",&string);
printf("la chaîne est composée de %d caractéres."strlen (string));
}

pourriez vous svp m'aider à trouver mon erreur?
merci d'avance

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
18 mars 2007 à 20:06
Salut,

Avec ce code ça marche
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int
main ()
{
  char *chaine;
  chaine = (char *) malloc (100 * sizeof (char));
  printf ("Entrez une chaine de caractere:\n");
  fgets (chaine, 100, stdin);
  printf ("La chaine saisie est composee de %ld caractere.\n",
                  strlen (chaine) - 1);

  return 0;
}

résultat
~/trash$ ./ccm
Entrez une chaine de caractere:
une chaine de caracteres
La chaine saisie est composee de 24 caractere.
mais avec celui là non
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int
main ()
{
  char *chaine;
  chaine = (char *) malloc (100 * sizeof (char));
  printf ("Entrez une chaine de caractere:\n");
  scanf("%s",chaine);
  printf ("La chaine saisie est composee de %ld caractere.\n",
                  strlen (chaine));

  return 0;
}
résultat
~/trash$ ./ccm
Entrez une chaine de caractere:
une chaine de caractères
La chaine saisie est composee de 3 caractere.
Pourquoi?
1