Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como reduzir o tamanho de uma string em C
Ao trabalhar com strings em C , pode ser útil para aumentar dinamicamente ou reduzir o tamanho de uma string para gerenciar a memória de forma eficiente. Strings normais definidos pela palavra-chave " char * " têm tamanhos estáticos que não posso mudar, então você precisa trabalhar diretamente com os blocos de memória em seu lugar. Use a função " malloc " para criar um bloco de memória que armazena a string e então a função " realloc " para alterar o tamanho do bloco de memória. Instruções
1

Abra o arquivo de origem C em um editor como o Microsoft Visual Studio Express.
2

Adicione o seguinte código na parte superior do arquivo de origem C , de modo que você pode acessar as funções de memória :

# include # include


3

Declare variáveis que você vai usar , adicionando o seguinte código na parte superior da sua função :

char * buf , * cur_ptr , * temp_ptr ;

char c ;

size_t mem_size = 200;

size_t mem_used = 0;
4

Chame a função " malloc " para alocar um bloco de memória que você pode usar para armazenar a string , adicionando o código:

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

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

Receba entrada do usuário, um carácter de cada vez, até que uma nova linha ( '\\ n' ) de caracteres ou 200 caracteres são inseridos, adicionando o código :

cur_ptr = buf ;

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

* cur_ptr + + = c ;

mem_used + +;

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

}
6

Chame a função " realloc " para realocar o bloco de memória , reduzindo o seu tamanho por 2, com o seguinte código :

if ( mem_used > 2 ) {

mem_size - = 2;

temp_ptr = realloc ( buf , mem_size );

if ( temp_ptr == NULL ) return -1 ;

buf = temp_ptr ;

cur_ptr = buf + mem_used ;

}

o ponteiro " buf " aponta para o início da " string" bloco de memória e " cur_ptr " aponta para a posição atual , que é o fim da " cadeia ".
7

Chame a função de "livre" para liberar o bloco de memória para a cadeia , caso contrário, seu programa terá um vazamento de memória, adicionando o código:

livre ( buf );
8

Salve o arquivo C, compilar e executar o programa para executar o novo código corda
< . br>

Anterior :

Próximo : No
  Os artigos relacionados
·Como fazer um padrão em C + + Código 
·Como substituir funções no Dev C + + 
·Como fazer um botão clicável em C 
·Como compilar em Borland C + + 
·Como usar o LINQ to XML 
·Como inserir o valor de uma variável em uma string C 
·Como INT em C + + para os números reais 
·Como limpar um buffer de entrada em C + + 
·Como obter o produto de uma matriz em C + + 
·Como combinar um arquivo usando C + + 
  Artigos em destaque
·Como identificar os tipos de validação de entrada 
·Como fechar arquivos em C 
·Como fazer um arquivo de jogo de cartas em C + + 
·Como substituir texto arbitrário em String no C + + 
·O que é CTS em ASP.NET 
·Como fazer uma série de asteriscos em C + + 
·O que é um cabeçalho Ctype 
·Programas em C + + que irá reverter a sentença 
·O que é um EOF na Linguagem C 
·Como tirar uma String de um arquivo de entrada e revert…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados