| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Sådan reducere længden af ​​en streng i C
    Når du arbejder med strenge i C, kan det være nyttigt at dynamisk øge eller reducere størrelsen af en streng til at forvalte sin hukommelse effektivt. Normale strenge defineret af " char * " søgeord har statiske størrelser, der ikke kan ændre, så du er nødt til at arbejde direkte med hukommelse blokke i stedet. Brug " malloc " funktion for at oprette en hukommelse blok, der gemmer strengen og derefter " realloc "-funktionen at ændre hukommelsen blokstørrelse . Instruktioner
    1

    Åbn dit C kildefil i en editor såsom Microsoft Visual Studio Express.
    2

    Føj følgende kode i toppen af ​​dit C kildefilen, så kan du få adgang til hukommelse funktioner : Hej

    # include

    # include
    3

    Erklær variable at du vil bruge ved at tilføje følgende kode i toppen af ​​din funktion : Hej

    char * buf , * cur_ptr , * temp_ptr ,

    char c.

    size_t mem_size = 200 ;

    size_t mem_used = 0;
    4

    Kald " malloc "-funktionen til at afsætte en blok af hukommelse, som du kan bruge til at gemme strengen ved at tilføje koden : < br >

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

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

    Modtag bruger-input, et tegn ad gangen, indtil en ny linje ( '\\ n' ) tegn eller 200 tegn er indtastet, ved at tilføje koden : Hej

    cur_ptr = buf ;

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

    * cur_ptr + + = c ; !

    mem_used + +;

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

    }
    6

    Kald " realloc "-funktionen til at omfordele hukommelse blok , reducere dens størrelse med 2, med følgende kode : Hej

    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 ,

    }

    pointer " buf " peger på starten af ​​"streng" memory blok og " cur_ptr " peger på den aktuelle position , som er i slutningen af ​​"streng ".
    7

    Ring den "frie " til at frigive hukommelsen blokken for strengen , ellers dit program vil have en hukommelsesfejl , ved at tilføje koden : .

    gratis ( bUF ),
    8

    Gem dit C -fil , kompilere og køre programmet til at udføre den nye streng kode
    < br >

    Forrige :

    næste :
      Relaterede artikler
    ·Hvordan man skriver et program , der læser en perleræ…
    ·Sådan bruges C + + skrive en kode til at beregne fakul…
    ·Sådan bruges Strings som input fra tastaturet i to dim…
    ·Sådan oprettes en funktion i Microsoft Visual C + + 
    ·Sådan Læs e-mail kodet med MIME 
    ·Sådan Begræns decimal i C Language 
    ·Sådan allokere hukommelse på Stack Brug C + + 
    ·Sådan Beregn Expressions Med Increment & Decrement Ope…
    ·Hvordan til at returnere en Vector Fra en funktion 
    ·Hvad er en arv Conflict 
      Anbefalede Artikler
    ·Hvad er en hændelse i Java 
    ·Sådan Arranger numre fra laveste til højeste hjælp a…
    ·Java Game Development Tools 
    ·Sådan bruges MiKTeX Med Python 
    ·Hvordan til at navigere i midten af ​​en PHP fil 
    ·Hvordan man skriver i en fil i Python 
    ·Hvad Er WordPerfect makroer 
    ·Sådan Break en streng i Delstrenge i Java 
    ·Programmerbare spil til en TI 86 
    ·Sådan opdaterer PEAR 
    Copyright © Computer Viden http://www.computerdk.com