| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment faire pour réduire la longueur d'une chaîne en C
    Lorsque vous travaillez avec des chaînes en C , il peut être utile d'augmenter ou de réduire dynamiquement la taille d'une chaîne de gérer efficacement sa mémoire . Chaînes normales définies par le " char * " mot-clé ont des tailles statiques qui ne peuvent pas changer , si vous avez besoin de travailler directement avec des blocs de mémoire à la place. Utilisez la fonction " malloc " pour créer un bloc de mémoire qui stocke la la fonction " realloc " pour changer la taille de bloc de mémoire chaîne, puis . Instructions
    1

    Ouvrez votre fichier source C dans un éditeur tel que Microsoft Visual Studio Express .
    2

    Ajoutez le code suivant en haut de votre fichier source C de sorte que vous pouvez accéder aux fonctions de mémoire :

    # include

    # include
    3

    déclarer des variables que vous utiliserez en ajoutant le code suivant au début de votre fonction :

    char * buf, * cur_ptr , * temp_ptr ;

    char c ;

    mem_size size_t = 200;

    size_t mem_used = 0;
    4

    Appelez la fonction " malloc " pour allouer un bloc de mémoire que vous pouvez utiliser pour stocker la chaîne , en ajoutant le code suivant:

    buf = (char *) malloc ( ( mem_size ) * sizeof (char) ) ;

    if ( buf == null) return -1 ;
    5

    recevoir une entrée utilisateur , un caractère à la fois, jusqu'à un caractère de nouvelle ligne ( " \\ n " ) ou 200 caractères sont entrés , en ajoutant le code suivant:

    cur_ptr = buf ;

    while (( c = getchar ()) = '\\ n' ) {

    * cur_ptr + + = c ; !

    mem_used + +;

    if ( mem_used == mem_size ) break; < br >

    }
    6

    Appelez la fonction " realloc " de réaffecter le bloc de mémoire , ce qui réduit sa taille par 2, avec le code suivant :

    if ( mem_used > 2 ) {

    mem_size - = 2;

    temp_ptr = realloc ( buf, mem_size ) ;

    if ( temp_ptr == null) return -1 ;
    < p > buf = temp_ptr ;

    cur_ptr = buf + mem_used ;

    }

    le pointeur " buf " pointe vers le début du bloc de mémoire "string" et " cur_ptr " souligne la position actuelle , qui est la fin de la « chaîne ».
    7

    appeler la fonction «libre» pour libérer le bloc de mémoire pour la chaîne , sinon votre programme aura une fuite de mémoire , en ajoutant le code suivant: .

    libre ( buf ) ;
    8

    Enregistrez votre fichier C , compiler et exécuter le programme à exécuter le nouveau code de chaîne


    Previous :

    next :
      articles connexes
    ·Comment maîtriser C Pointers 
    ·Comment commencer à apprendre l'Objective C sur Window…
    ·Différence entre le vecteur et la liste en C + + 
    ·Comment changer l'icône dans Xcode 
    ·Comment créer votre propre moteur de jeu 
    ·Comment programmer les pointeurs C 
    ·Comment faire pour convertir Char * à Int & C + + 
    ·Comment obtenir une valeur sélectionnée dans une zone…
    ·Comment créer un fichier C + + en-tête 
    ·Qu'est-ce que WinAC & Kernel Mode 
      articles en vedette
    ·Comment trier les données dans Visual Basic 
    ·Différences entre ATL , MFC et Win32 
    ·Socket suivi avec Java 
    ·Comment calculer le pourcentage sur le total des lignes…
    ·Comment faire pour obtenir un nombre entier de nextLine…
    ·Comment faire pour trouver l'objet Méthode IVX 
    ·Comment faire pour supprimer mon cache avec ActionScrip…
    ·Comment faire pour créer une base de données CV 
    ·Comment trouver les numéros manquants dans un tableau …
    ·Comment ajouter une barre de défilement de Visual Basi…
    Copyright © Connaissances Informatiques http://fr.wingwit.com