Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come ridurre la lunghezza di una stringa in C

Quando si lavora con le stringhe in C , può essere utile per aumentare dinamicamente o ridurre le dimensioni di una stringa di gestire la memoria in modo efficiente . Stringhe normali definiti dal "char * " parola chiave hanno dimensioni statiche che non possono cambiare , quindi è necessario lavorare direttamente con i blocchi di memoria , invece. Utilizzare la funzione " malloc " per creare un blocco di memoria che memorizza la stringa e poi la funzione " realloc " per cambiare la dimensione del blocco di memoria . Istruzioni
1

Aprire il file sorgente C in un editor come Microsoft Visual Studio Express .
2

Aggiungere il seguente codice nella parte superiore del vostro file sorgente C in modo che è possibile accedere alle funzioni di memoria :

# include

# include
3

dichiarare variabili che si intende utilizzare , aggiungendo il seguente codice nella parte superiore della vostra funzione :

char * buf , * cur_ptr , * temp_ptr ;

char c ;

mem_size size_t = 200 ;

size_t mem_used = 0;
4

richiamare la funzione " malloc " per allocare un blocco di memoria che è possibile utilizzare per memorizzare la stringa , aggiungendo il codice : < br

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

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

ricevere l'input dell'utente , un carattere alla volta , fino a quando un carattere di nuova riga ( '\\ n' ) o di 200 caratteri vengono inseriti , aggiungendo il codice :

cur_ptr = buf ;

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

* cur_ptr + + = c ; !

mem_used + + ;

se ( mem_used == mem_size ) break;

}
6

richiamare la funzione " realloc " per riallocare il blocco di memoria , riducendo la sua dimensione da 2 , con il seguente codice :

se ( mem_used > 2 ) {

mem_size - = 2;

temp_ptr = realloc ( buf , mem_size ) ;

se ( temp_ptr == NULL) return -1 ;

buf = temp_ptr ;

cur_ptr = buf + mem_used ;

}

il puntatore " buf " indica l'inizio del blocco di memoria " stringa" e " cur_ptr " punta alla posizione corrente , che è il fine della " stringa ".
7

richiamare la funzione " libera " per liberare il blocco di memoria per la stringa , altrimenti il ​​vostro programma avrà una perdita di memoria , aggiungendo il codice : .

gratuito ( buf ) ;
8

Salvare il file C , compilare ed eseguire il programma per eseguire il nuovo codice stringa


 

Programmazione © www.354353.com