Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur man minska längden på en sträng i C

    När du arbetar med strängar i C , kan det vara till hjälp att dynamiskt öka eller minska storleken på en sträng för att förvalta sitt minne effektivt . Normala strängar definieras av " char * " sökord har statiska storlekar som inte kan ändras , så du behöver för att arbeta direkt med minnesblock istället . Använd " malloc " -funktionen för att skapa ett minne som lagrar strängen och sedan " realloc " -funktionen för att ändra storlek minnet blocket . Instruktioner
    1

    Öppna din C källfilen i en editor som Microsoft Visual Studio Express .
    2

    Lägg till följande kod på toppen av din C källfilen så att du kan komma åt minnesfunktioner :

    # include

    # include
    3

    Deklarera variabler att du kommer att använda genom att lägga till följande kod på toppen av din funktion :

    char * buf , * cur_ptr , * temp_ptr ;

    röding c ,

    size_t mem_size = 200 ;

    size_t mem_used = 0;
    4

    Ring " malloc " -funktion för att fördela ett block av minne som du kan använda för att lagra strängen , genom att lägga in koden :

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

    om ( BUF == null ) return -1 ;
    5

    emot användarens inmatningar , ett tecken i taget , tills en radbrytning ( ' \\ n ' ) tecken eller 200 tecken anges , genom att lägga in koden :

    cur_ptr = BUF ,

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

    * cur_ptr + + = c ; !

    mem_used + + ;

    om ( mem_used == mem_size ) break ;

    }
    6

    Ring " realloc " -funktion för att omfördela minnet blocket , minskar dess storlek med 2 , med följande kod :

    om ( mem_used > 2 ) {

    mem_size - = 2 ;

    temp_ptr = realloc ( buf , mem_size ) ;

    om ( temp_ptr == null ) return -1 ;

    buf = temp_ptr ;

    cur_ptr = buf + mem_used ;

    }

    pekaren " buf " pekar på början av den "sträng" minnesblock och " cur_ptr " pekar på den aktuella positionen , vilket är slutet av " strängen ".
    7

    Ring " gratis " -funktionen för att frigöra minnesblock för strängen , annars ditt program kommer att ha en minnesläcka , genom att lägga in koden : .

    gratis ( buf ) ;
    8

    Spara din C -fil , kompilera och köra programmet för att verkställa den nya strängen koden


    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur konvertera en STD sträng till ett heltal
    ·Hur kan felsöka minnesläckor i GDB
    ·Hur man lär sig C + +
    ·Hur man skriver ordet motsvarar en Check Belopp i C pro…
    ·Hur att skicka parametrar till MVC View
    ·Hur skärmteckensnitten i MFC
    ·Hur att använda grafik funktioner i C + +
    ·Hur Direktuppspelning av video i XCode
    ·En handledning om Microsoft Visual Studio C + +
    ·Så skyddar PIC12F675 koder från Hacking
    Utvalda artiklarna
    ·Hur man sätter annonser i WordPress Footer
    ·Så här visar du en String bakåt i C
    ·Hur Räkna antalet förekomster i PHP
    ·Hur man skapar en while-slinga i Ruby
    ·Lägga GridView
    ·Hur man genomför en lista i Android XML
    ·Hur man installerar en MySQL Extension för PHP Red Hat…
    ·Hur man gör 3D Array i Python
    ·Hur läsa text från SWF i Java
    ·Hur återställer MySQL 5.1 rotlösenord i Windows
    Copyright © Dator Kunskap http://www.dator.xyz