IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Explication code travaillant sur chaîne de caractères


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Explication code travaillant sur chaîne de caractères
    je sais exactement le but de ce code la c'est pour afficher une chaine de carractere en reverse
    mais le problem j'arrive po a comprendre des trucs dans ce code
    par exemple : "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (i < ((count + 1) / 2))
    "
    et
    "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    count = 0;
    	while (str[count] != '\0')
    		count++;
    	count = count - 1;
    "
    svp aide moi pour le comprendre tout et merci en avance i really i will be very thankful if u can help me with that





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    char	*ft_strrev(char *str)
    {
    	int		count;
    	int		i;
    	char	c;
     
    	count = 0;
    	while (str[count] != '\0')
    		count++;
    	count = count - 1;
    	i = 0;
    	while (i < ((count + 1) / 2))
    	{
    		c = str[i];
    		str[i] = str[count - i];
    		str[count - i] = c;
    		i++;
    	}
    	return (str);
    }

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 108
    Points : 143
    Points
    143
    Par défaut
    ça sent 42 tous ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    count = 0;
    while (str[count] != '\0')
    count++;
    Renvoie la taille de la chaine de caractère str.

    Indice du dernier caractère avant le \0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i = 0;
    while (i < ((count + 1) / 2))
    {
    c = str[i];
    str[i] = str[count - i];
    str[count - i] = c;
    i++;
    }
    On échange le i ème caractère par le n ème.
    Exemple: Le premier avec le dernier, le second avec l'avant dernier et ainsi de suit.

    Si tu prépares une piscine je te souhaites bonne chance et que tu ne vas pas te noyer.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Pour afficher une chaine de caractère à l'envers, il y a 2 solutions
    1. l'afficher de la fin vers le début
    2. la renverser puis afficher le résultat


    C'est la seconde solution qui est codée ici. Mais pour renverser une chaine, il n'y a qu'un moyen: placer un indice au début d'un côté et à la fin de l'autre puis inverser les caractères qui s'y trouvent. Puis avancer l'indice du début d'un cran et reculer l'indice de fin d'un cran et recommencer jusqu'à ce que soit les indices se croisent, soit que l'indice du début atteigne le milieu. Et c'est quoi le milieu d'un tableau de n ? C'est (n+1)/2. D'où le test while (i < (count + 1) / 2).

    Mais comment placer un indice sur la fin de la chaine ? En recherchant sa fin (le '\0') d'où la boucle for (count=0; str[count] != '\0'; count++);.

    Et comment inverser deux caractères ? Copier le premier ailleurs, puis le second à la place du premier et celui se trouvant ailleurs à la place du second. D'où les 3 lignes d'affectation dans la boucle.

    CQFD
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/05/2014, 15h28
  2. est ce que vous pouvez m'expliquez la ligne de code suivante?
    Par KTARIK dans le forum Général Python
    Réponses: 2
    Dernier message: 06/05/2014, 12h37
  3. Réponses: 10
    Dernier message: 18/05/2008, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo