C/C++: Conversão String(char *), hexa e int

2 respostas
bandrade

Bom dia pessoas, tudo bom?

Tenho que criar uma função que compara 2 valores, que virão em fromatos diferentes:

boolean compare(String hexaValue, int value);

ou seja, recebo uma String contendo um valor em hexa, exemplo:

void foo(){
  String s = "0x0103461B";
  int i = 16991771;
  bool result = compare(s,i);
}

Entao, tenho que converter o hexa em inteiro e fazer a comparação com o inteiro.
Alguém tem alguma idéia de como resolver isso??

Valeu.

**Sim, já estou vasculhando a internet em busca de algo parecido. (;

2 Respostas

bandrade

Nhá. Resolvido… tem hora que eu simplesmente me acho um completo idiota.

sscanf(c.toCharArray(),"%x",&i);
bool compare (String hexa, int value){
  int i;
  sscanf(hexa.toCharArray(),"%x",&i);
  return (i == value);
}

void foo(){
   String s = "0x0103461B";
   int i = 16991771;
   bool result = compare(s,i);
 }

Bom, funcionou nos testes aki. ((;

jmp

dicas:

  • nunca use scanf em C (buffer overflow)
  • nunca use funcoes da lib de C em código C++

esse teu código não é C++, um compilador C++ vai compilar, mas isso definitivamente não é C++ em lugar nenhum.

Criado 26 de abril de 2006
Ultima resposta 27 de abr. de 2006
Respostas 2
Participantes 2