Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Kaxperday en 13 Noviembre 2015, 15:07 pm



Título: La magia del string.find()
Publicado por: Kaxperday en 13 Noviembre 2015, 15:07 pm
Se solucionó, tenía que ver con esa igualdad que haces dentro de una condicion a la que hay que meter entre parentesis...

fue algo mágico de todas maneras:

Código que funciona:

Código
  1. void filtrar_pregunta_http(u_char* _datos, int _tamaño)
  2. {
  3. string paquete = string(reinterpret_cast<char*>(_datos), _tamaño);
  4. int tamaño = _tamaño;
  5. int pos = 0;
  6. while ((pos = paquete.find("https://", pos)) != string::npos){
  7. paquete.replace(pos, 5, "http");
  8. tamaño--;
  9. }
  10. cout << "pos: " << pos << endl;
  11. if ((pos = paquete.find("Accept-Encoding: ")) != string::npos){
  12. int pas = pos;
  13. while (paquete[pas] != '\n'){
  14. printf("%c", paquete[pas]);
  15. pas++;
  16. }
  17. paquete.erase(pos, pas - pos + 1);
  18. }
  19. cout << paquete.c_str() << endl;
  20. }