Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan redusere lengden på en streng i C
    Når du arbeider med strenger i C , kan det være nyttig å dynamisk øke eller redusere størrelsen på en snor til å administrere minnet effektivt. Normale strenger definert av " char * " søkeord har statiske størrelser som ikke kan forandre , så må du jobbe direkte med minneblokker stedet . Bruk " malloc " funksjonen for å lage et minne blokk som lagrer strengen og deretter " realloc " funksjonen for å endre minnet blokkstørrelse . Instruksjoner
    en

    Åpne C kilde filen i et redigeringsprogram , for eksempel Microsoft Visual Studio Express.
    2

    Legg til følgende kode på toppen av din C kilde filen slik at du kan få tilgang til minnefunksjoner : en

    # include

    # include
    3

    Erklærer variabler som du vil bruke ved å legge følgende kode øverst i funksjon din : en

    røye * buf , * cur_ptr , * temp_ptr ;

    røye c ;

    size_t mem_size = 200;

    size_t mem_used = 0;
    4

    Ring " malloc " funksjon for å allokere en blokk med minne som du kan bruke til å lagre strengen , ved å legge inn koden :

    buf = ( char * ) malloc ( ( mem_size ) * sizeof ( røye ));

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

    motta brukerundersøkelser, ett tegn om gangen , inntil et linjeskift (' \\ n' ) tegn eller 200 tegn er lagt inn, ved å legge inn koden : en

    cur_ptr = buf ;

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

    * cur_ptr + + = c ; !

    mem_used + +;

    if ( mem_used == mem_size ) break;

    }
    6

    Ring " realloc " funksjonen for å omfordele minnet blokken , redusere størrelsen med 2, med følgende kode :

    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 ;

    }

    pekeren " buf " peker på begynnelsen av " strengen " minne blokk og " cur_ptr " peker på det aktuelle posisjon, som er slutten av " strengen . "
    7

    Ring "gratis "-funksjonen for å frigjøre minne blokk for strengen , ellers programmet vil ha en minnelekkasje , ved å legge inn koden : .

    gratis ( BUF) ;
    8

    Lagre C -filen , kompilere og kjøre programmet for å utføre den nye strengen koden


    früher :

     Weiter:
      Relatert Artike
    ·Hvordan å se Samtale Stack i GDB 
    ·Hvordan Link COBOL & C sammen på z /OS 
    ·Hvordan lese en fil i ANSI C 
    ·Slik konverterer XML til Enum 
    ·Slik oppretter du en dato i C # 
    ·Hvordan bruke Rediger -kontroller i MFC 
    ·Hvordan bruke Arrays i Turbo C + + 
    ·Hvordan finne ut hva C funksjoner er tilgjengelige i GC…
    ·Hvordan oppdage en hendelse med WIA Vent 
    ·Hvordan lage Listbox kontroll Redigerbart i C + + 
      Anbefalte artikler
    ·Hvordan erstatte flere brikker i MySQL 
    ·Hvordan lage en Tag i PHP 
    ·Hvordan Echo variabler ved hjelp av PHP 
    ·Hvordan koble til MySQL Med PowerShell 
    ·Hvordan sette bakgrunnsfarge klasse Bruke jQuery 
    ·Hvordan bruke OpenGL i Visual C 
    ·Hva er de forskjellige hendelser i Visual Basic 
    ·Hvordan lage en High Low spill i Python 
    ·Hva er en EOF i C Språk 
    ·Python Tips 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/