A corda é uma sequência de caracteres que consiste em um único caractere ou em vários caracteres e é uma estrutura de dados importante na programação de computadores. Ao trabalhar com cordas em C, certas operações devem ser executadas no corda tipo de dados, como inicializar o corda , atribuindo conteúdo, concatenando o cordas , comparando cordas , e retornando o corda .
Este artigo enfoca uma dessas operações no corda estrutura de dados, que está retornando um corda de uma função C.
Retornando String de uma Função C
Como corda é uma matriz de caracteres e para retornar string de uma função C, um ponteiro para a estrutura de dados da string precisa ser passado como um argumento da função de chamada para a função chamada como um parâmetro. O ponteiro pode então ser usado para apontar para uma matriz de caracteres. Uma vez que o ponteiro aponta para uma matriz de caracteres, o corda O valor pode ser retornado da função chamada usando a instrução return.
Você pode olhar para o exemplo abaixo dado para melhor compreensão.
#include
caracter const * o meu nome ( ) {
retornar 'John' ;
}
int principal ( vazio ) {
printf ( '%s' , o meu nome ( ) ) ;
}
No código acima, ao invés de declarar a variável como fazemos normalmente, utilizamos um ponteiro com ela para que quando retornarmos esta string não ocorra nenhum erro.
Saída
Uma função C não pode retornar um corda que foi especificada como uma variável local, pois a variável será imediatamente removida (liberada) quando a função terminar de executar, tornando-a indisponível e disparando um aviso conforme abaixo:
const char meuNome ( ) {
nome do personagem = 'John' ;
retornar nome;
}
int principal ( vazio ) {
printf ( '%s' , o meu nome ( ) ) ;
}
Neste código, um aviso é acionado quando a string está sendo retornada sem qualquer ponteiro.
Saída
Então, você pode escrever o código da seguinte maneira:
caracter const * o meu nome ( ) {
Caracteres * nome = 'John' ;
retornar nome;
}
int principal ( vazio ) {
printf ( '%s' , o meu nome ( ) ) ;
}
Saída
As variáveis são alocadas na pilha por padrão, que é o verdadeiro motivo da declaração acima. No entanto, quando um ponteiro é declarado, o valor para o qual ele aponta é alocado no heap, que não é limpo após a conclusão da função. Uma vez que a memória é alocada, uma cópia do corda precisa ser criado a partir do local de memória original apontado pelo ponteiro e a cópia precisa ser retornada da função chamada. A função de chamada terá então controle sobre os dados da string original, enquanto a função chamada é responsável por liberar o espaço alocado.
Conclusão
Uma função C pode levar um ponteiro para corda como argumento e retornar o corda valor como resultado das operações realizadas dentro da função chamada. A abordagem para conseguir isso é usar um ponteiro de char*. A função de chamada será responsável pela memória alocada para armazenar o corda , enquanto a função chamada é responsável por liberar o espaço alocado.