Ir para conteúdo

POWERED BY:

Arquivado

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

cristianoz

Localizar caracteres especiais?

Recommended Posts

Pessoal,

Bom dia

Estou com uma dúvida que está quebrando minha cabeça:

Seguinte, eu tenho um arquivo com vários e-mails e estes emails são separados pelos caracteres de escape "^@" o problema é que quando eu tento localizá-los, o código simplesmente não os encontra: exemplo do arquivo: teste@gmail.com^@teste1@uol.com.br^@teste2@oul.com

O que eu quero fazer é criar susbstrings com cada e-mail e armazená-los em um vetor. isso está tranquilo. a Dificuldade mesmo é que não posso procurar somente por "@" preciso obrigatóriamente encontrar por "^@".

A busca estou fazendo da seguinte forma:

Abro o arquivo com fstream::ios in

e busco com o find: linha.find("^@", 0) != string::npos)

desta maneira não encontra o "^@".

Será que alguem pode me ajudar com esse probleminha??

Grato pela Atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ñ sei se é a melhor maneira claro, ow se tem comandos prontos para isso, tentei resolver da seguinte forma:

#include <iostream>
#include <cstring>
using namespace std;
int main (){
  string str ("teste@gmail.com^@teste1@uol.com.br^@teste2@oul.com");
  size_t found;
  char * cstr, *p;
  bool bContinua = true;
  while(bContinua){
    found=str.find("^@");
    if (found!=string::npos) str.replace(int(found),2,"^");
    else bContinua = false;
  }
  cstr = new char [str.size()+1];
  strcpy (cstr, str.c_str());
  p=strtok (cstr,"^");
  while (p!=NULL)
  {
    cout << p << endl;
    p=strtok(NULL,"^");
  }
  delete[] cstr;
  return 0;
}

primeiro vejo onde tem o '^@' ai troco soh por '^', dai vo repartindo a string.

da uma olhada ai.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, estou fazendo de uma forma bem parecida...

 

O problema é que os valores de email não sao de uma variavel, eles vem de um arquivo...

e quando eu tento pegar a linha deste arquivo..os caracteres nao aparecem...exemplo

no arquivo usuario@gmail.com^@teste@uol.com.br^@maisteste@uol.com.br

pego a linha do arquivos através do comando:

fstream arqmails:

arqmails.open(("/home/teste/", ios::in)

para pegar a linha uso o

getline(arqmail,linha)

 

agora vem o problema..teoricamente a linha deveria ser usuario@gmail.com^@teste@uol.com.br^@maisteste@uol.com.br

porem ela vem usuario@gmail.comteste@uol.com.brmaisteste@uol.com.br (sem os caracteres "^@");

por esse motivo não consigo filtrar o e-mail

 

Obrigado pela Ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente ler de outra maneira para ver oq acontece.

 

[]s

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.