Click here to Skip to main content
12,240,300 members (57,238 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: C++ C string
Heya

I got a long string from a HTML request. I need to find the following substring within:

<&randomtag>

However when I'm trying to search it gives me wrong results.

If I replace the string with something, not containing "<" ">" it works flawlessly.

Relevant code:
(not copied, might have some typos, but works without special characters)

std::string readBuffer; //longlongstring
std::string starttag;
std::string endtag;
 
size_t sstart;
size_t send;
 
//...................

sstart=readBuffer.find(starttag);
send=redBuffer.find(endtag);
 
correction=readBuffer.substr(sstart,send-sstart);
 
std::cout << correction << std::endl;

So yeah, if anyone happens to know a way to fix this, I'd very much be greatful Smile | :)
Thanks in advance
Posted 10-Mar-13 5:28am
Y0UR248
Edited 10-Mar-13 5:33am
v3
Comments
du[DE] 10-Mar-13 11:54am
   
I think you got already an answer: c stdstring search with special characters

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

1. what do you mean- wrong result?
2. I just tried to run:
std::string readBuffer = "dgsdg sdfgsd sdfg ds <&randomtag> fghhsdfgsd dfgd sdg dfgdg dfg  ghdfh sdfg";
std::string starttag = "<&randomtag>";
std::string endtag = "";
 
size_t sstart;
size_t send;
 
//...................

sstart=readBuffer.find(starttag);
send=readBuffer.find(endtag);
 
std::string correction = readBuffer.substr(sstart,send-sstart);

and it worked as expected. correction variable was holding "<&randomtag> fghhsdfgsd dfgd sdg dfgdg dfg ".
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160426.1 | Last Updated 11 Apr 2013
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100