Retornando String de uma Função C

Retornando String De Uma Funcao C



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:

#include

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:

#include

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.