Click here to Skip to main content
15,903,030 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Simple C to C++ Pin
Chuck O'Toole14-Sep-11 14:32
Chuck O'Toole14-Sep-11 14:32 
AnswerRe: Simple C to C++ Pin
enhzflep14-Sep-11 16:21
enhzflep14-Sep-11 16:21 
GeneralRe: Simple C to C++ Pin
Chuck O'Toole14-Sep-11 17:18
Chuck O'Toole14-Sep-11 17:18 
AnswerRe: Simple C to C++ Pin
Erudite_Eric14-Sep-11 20:41
Erudite_Eric14-Sep-11 20:41 
AnswerRe: Simple C to C++ Pin
Richard MacCutchan14-Sep-11 22:14
mveRichard MacCutchan14-Sep-11 22:14 
GeneralRe: Simple C to C++ Pin
Orjan Westin15-Sep-11 1:38
professionalOrjan Westin15-Sep-11 1:38 
GeneralRe: Simple C to C++ Pin
Richard MacCutchan15-Sep-11 1:43
mveRichard MacCutchan15-Sep-11 1:43 
AnswerRe: Simple C to C++ Pin
Orjan Westin15-Sep-11 1:32
professionalOrjan Westin15-Sep-11 1:32 
If you want to replace the character '<' in a string with, "&lt;", it could be done quite simply in C++ like this:
C++
void replace_html_delimiters(std::string& str)
{
  std::string::size_type pos = str.find("<");
  while (std::string::npos != pos)
  {
    str.replace(pos, 1, "&lt;");
    pos = str.find("<", pos + 4);
  } 
}

Or if you want to cover the closing '>' as well:
C++
void replace_html_delimiters(std::string& str)
{
  std::string::size_type pos = str.find_first_of("<>");
  while (std::string::npos != pos)
  {
    if ('<' == str[pos])
      str.replace(pos, 1, "&lt;");
    else
      str.replace(pos, 1, "&gt;");
    pos = str.find_first_of("<>", pos + 4);
  } 
}


By the way, I assume that you had &lt; in your code example, and that CodeProject converted it to < when you posted it? This can be avoided by escaping out the leading ampersand (& is also a reserved character in HTML, like < and >) like this: &amp;lt;.

Otherwise, your C code would simply replace the character '<' with the character '<', with lots of copying back and forth.
C++
void replace_html_delimiters(char *msg)
{
  for(i=0; ; i++)
  {
    if(msg[i]== NUL)
      break;                 // End condition, so not needed in for statement
    if(msg[i]=='<')          
    {
      msg[i] = NUL;          // Replace found '<' with 0 to mark end of string
      strcpy(z_buf,msg);     // Copy string (up to the new end) to buffer
      strcat(z_buf,"<");     // Add string "<" to end of buffer 
      strcat(z_buf,msg+i+1); // Add remaining string to end of buffer)
      strcpy(msg,z_buf);     // Copy back to string. 
    }
  }
}

And that could be rewritten very effectively like this:
C++
void replace_html_delimiters(char *msg)
{
  // No need to do anything
}

Smile | :)
AnswerRe: Simple C to C++ Pin
Stefan_Lang15-Sep-11 1:43
Stefan_Lang15-Sep-11 1:43 
GeneralRe: Simple C to C++ Pin
Richard MacCutchan15-Sep-11 1:47
mveRichard MacCutchan15-Sep-11 1:47 
JokeRe: Simple C to C++ Pin
MicroVirus15-Sep-11 3:36
MicroVirus15-Sep-11 3:36 
QuestionMFC OpenGL Invalidate Flickering Pin
appollosputnik14-Sep-11 6:19
appollosputnik14-Sep-11 6:19 
AnswerRe: Flicker Free Drawing In MFC Pin
Software_Developer14-Sep-11 7:32
Software_Developer14-Sep-11 7:32 
AnswerRe: MFC OpenGL Invalidate Flickering Pin
Roger Allen27-Sep-11 6:23
Roger Allen27-Sep-11 6:23 
QuestionShowHTMLDialog not working in Windows 7 Pin
doug2514-Sep-11 4:00
doug2514-Sep-11 4:00 
AnswerRe: ShowHTMLDialog not working in Windows 7 Pin
Chris Meech14-Sep-11 6:07
Chris Meech14-Sep-11 6:07 
GeneralRe: ShowHTMLDialog not working in Windows 7 Pin
doug2514-Sep-11 7:39
doug2514-Sep-11 7:39 
GeneralRe: ShowHTMLDialog not working in Windows 7 Pin
Chris Meech14-Sep-11 8:27
Chris Meech14-Sep-11 8:27 
GeneralRe: ShowHTMLDialog not working in Windows 7 Pin
doug2514-Sep-11 8:59
doug2514-Sep-11 8:59 
Questionindex of member of a map? Pin
zon_cpp14-Sep-11 3:16
zon_cpp14-Sep-11 3:16 
AnswerRe: index of member of a map? Pin
«_Superman_»14-Sep-11 3:31
professional«_Superman_»14-Sep-11 3:31 
AnswerRe: index of member of a map? Pin
Chris Losinger14-Sep-11 3:37
professionalChris Losinger14-Sep-11 3:37 
QuestionWaitForSingleObject Pin
john563213-Sep-11 23:41
john563213-Sep-11 23:41 
AnswerRe: WaitForSingleObject Pin
CPallini14-Sep-11 0:12
mveCPallini14-Sep-11 0:12 
GeneralRe: WaitForSingleObject Pin
john563214-Sep-11 0:25
john563214-Sep-11 0:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.