Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Souza Reis

Melhoria (ponteiros)

Recommended Posts

Olá pessoal. Estive estudando sobre ponteiros (sou iniciante) e então resolvi fazer umas funções para estudo, fiz apenas 2 por enquanto. Gostaria de ler opinião de vocês, pois eu vejo muita coisa na faculdade que na realidade não é bom usar, como system("pause"), gets(); e fflush();.
Obrigado! (:

#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
void str_replace (char *string, const char *find, const char *replace)
//Substitui o valor 'find' pelo 'replace' na 'string'.
{
     while (*string)
     {
           if (*string == *find)
              *string = *replace;
           ++string;
     }
     *string='\0';
}

int str_dif (const char *string1, const char *string2)
//Verifica se a string1 é diferente da string2, se for retorna o valor 0.
{
    int number1 = 0, number2 = 0, *ptrNumber1 = &number1, *ptrNumber2 = &number2, flag = 1, *ptrFlag = &flag;
        while (*string1)
        {
            ++*ptrNumber1;
            ++string1;
        }
        while (*string2)
        {
            ++*ptrNumber2;
            ++string2;
        }
        if (*ptrNumber1 != *ptrNumber2)
            *ptrFlag = 0;
        if (*ptrFlag == 1)
        {
            string1-=number1;
            string2-=number2;
             while ((*string1) && (*ptrFlag == 1))
            {
                 if (*string1 != *string2)
                        *ptrFlag = 0;
                ++string1;
                ++string2;
            }
        }
    return (*ptrFlag);
}
#endif // FUNCTIONS_H_INCLUDED

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou meio ao trabalho, mas quando chegar em casa dou uma olhada direito.

 

No momento não achei necessidade de você fazer ponteiro

 

int number1 = 0, number2 = 0, *ptrNumber1 = &number1, *ptrNumber2 = &number2, flag = 1, *ptrFlag = &flag;

em str_diff.

 

se vc definiu a variável number1, number2 e etc, dentro da função, não há o porquê de fazer outra referencia nelas. Quando a função terminar, o SO irá desalocar as variáveis definidas da função, seria diferente se vc fizesse ponteiro de ponteiro, mas essa é uma outra história...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.