Ir para conteúdo
Fórum Script Brasil
  • 0

Função para a verificação do servidor de um e-mail


emanoel.lucas.3920

Pergunta

Galera, é o seguinte: meu professor mandou eu criar uma função que verificasse se um e-mail digitado é do google (OU seja, se possui o domínio "@gmail.com"), mas a que eu fiz não está funcionando. Analisem o código:

#include <stdio.h>
#include <string.h> //biblioteca para usar as funções strcmp e strlen
int main ()
{
  char email[50], dominio[10]; //coloquei dez posições para o vetor dominio, pois o dominio do gmail possui 10 caracteres (@gmail.com).
  int i, j;
  printf("Digite seu e-mail: ");
  gets(email);     
  fflush(stdin) //limpando o buffer.
    
    
  //a variavel i recebe recebe o comprimento do email menos 10, pra que comece exatamente na posicao do '@'
  for(i = strlen(email) - 10, j = 0; j < 10; j++, i++){ 
    google[j] = email[i];
  }
  
  
  //aqui, depois de ter pegado os dez últimos caracteres do e-mail, será comparado.
  if(strcmp(google, "@gmail.com") == 0){
    printf("Email valido.\n");//se os dez últimos caracteres do e-mail forem iguais a "@gmail.com", o email será válido.
  else{
    printf("Email invalido.\n");//senão, será inválido.
  }
  
  
  return 0;
}
  

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá!

 

Bom, dei uma compilada rapida e fiz algumas correções simples:

#include <stdio.h>
#include <string.h>

int main ()
{
  char email [ 50 ], dominio [ 10 ];
  
  printf ( "\nDigite seu e-mail: " );
  scanf ( "%s", email );

  char google [ 11 ];

  int i, j;

  for ( i = strlen ( email ) - 10, j = 0; j < 10; j++, i++ )
     {
        google [ j ] = email [ i ];
     }

  if ( strcmp ( google, "@gmail.com" ) == 0 )
    {
       printf ( "Email valido.\n" );
    }
else
    {
       printf ( "Email invalido.\n" );
    }
  return 0;
}

Só vou adiantando que não dei a minima para a sintaxe do codigo, sendo assim vou deixar testes mais apurados para voce, mas ate onde pude ver o codigo parece estar funcionando!

 

Só tenho 1 dica para você:

Tente buscar informações sobre possiveis problemas envolvendo o uso das funções gets() e fflush ( stdin ), pois, estas funções possuem caracteristicas de funcionamento que podem causar Bugs em diversos codigos!

 

Vou deixar 2 pequenos Links caso esteja interesado:

 

http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

http://forum.imasters.com.br/topic/537641-funcao-gets/

 

Ubuntu 14.04 LTS   -   GCC 4.8.4   -   CodeBlocks 13.12

 

Espero Ter Ajudado ! ! !

Editado por Felipe222
Adição de Links
Link para o comentário
Compartilhar em outros sites

  • 0

Olá a todos, abaixo segue um exemplo bem simples e pequeno.

Quanto menos linhas de código melhor.

 

#include <iostream>
#include <string>

using namespace std;

/*************************************************
*Função para verificar se existe uma string pre-determinada
*em outra string arbitrária.
*----------------------------------------------------
*Exemplo de uso
* if( validaEmail("rick@gmail.com") ){
*	cout<<"É uma conta google.";
* }else{
*	cout<<"Não é uma conta google.";
* }
*/
bool validaEmail(string email){
	string servidor("@gmail.com");
	string pedaco=email.substr(email.size()-servidor.size());
	return !pedaco.compare(servidor);
}

int main(){
	
	if( validaEmail("rick@gmail.com") ){
		cout<<"É uma conta google.";
	}else{
		cout<<"Não é uma conta google.";
 	}
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
21 horas atrás, Felipe222 disse:

Olá!

 

Bom, dei uma compilada rapida e fiz algumas correções simples:


#include <stdio.h>
#include <string.h>

int main ()
{
  char email [ 50 ], dominio [ 10 ];
  
  printf ( "\nDigite seu e-mail: " );
  scanf ( "%s", email );

  char google [ 11 ];

  int i, j;

  for ( i = strlen ( email ) - 10, j = 0; j < 10; j++, i++ )
     {
        google [ j ] = email [ i ];
     }

  if ( strcmp ( google, "@gmail.com" ) == 0 )
    {
       printf ( "Email valido.\n" );
    }
else
    {
       printf ( "Email invalido.\n" );
    }
  return 0;
}

Só vou adiantando que não dei a minima para a sintaxe do codigo, sendo assim vou deixar testes mais apurados para voce, mas ate onde pude ver o codigo parece estar funcionando!

 

Só tenho 1 dica para você:

Tente buscar informações sobre possiveis problemas envolvendo o uso das funções gets() e fflush ( stdin ), pois, estas funções possuem caracteristicas de funcionamento que podem causar Bugs em diversos codigos!

 

Vou deixar 2 pequenos Links caso esteja interesado:

 

http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

http://forum.imasters.com.br/topic/537641-funcao-gets/

 

Ubuntu 14.04 LTS   -   GCC 4.8.4   -   CodeBlocks 13.12

 

Espero Ter Ajudado ! ! !

Valeu, mesmo, mano!

19 horas atrás, rickayron disse:

Olá a todos, abaixo segue um exemplo bem simples e pequeno.

Quanto menos linhas de código melhor.

 


#include <iostream>
#include <string>

using namespace std;

/*************************************************
*Função para verificar se existe uma string pre-determinada
*em outra string arbitrária.
*----------------------------------------------------
*Exemplo de uso
* if( validaEmail("rick@gmail.com") ){
*	cout<<"É uma conta google.";
* }else{
*	cout<<"Não é uma conta google.";
* }
*/
bool validaEmail(string email){
	string servidor("@gmail.com");
	string pedaco=email.substr(email.size()-servidor.size());
	return !pedaco.compare(servidor);
}

int main(){
	
	if( validaEmail("rick@gmail.com") ){
		cout<<"É uma conta google.";
	}else{
		cout<<"Não é uma conta google.";
 	}
}

 

kk Apesar de eu não enteder muita coisa, valeu! (Não sei praticamente nada de c++, nem de OO)...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...