将以下delphi代码用c++代码写出来

求助:将以下delphi代码用c++代码写出来

class function TMxtTmProto.EncodeMsgData(const rawData: string): string;
var
  i:Integer;
  len:Integer;
begin
  Result := '';
  len := length(rawData);
  for i:=1 to len do
  begin
    if (Byte(rawData[i]) = $01) or (Byte(rawData[i]) = $04) or
      (Byte(rawData[i]) = $10) or (Byte(rawData[i]) = $11) or
      (Byte(rawData[i]) = $13) then
    begin
      Result := Result + Chr($10);
      Result := Result + Chr(Byte(rawData[i]) + $20);
    end
    else
      Result := Result + RawData[i];
  end;
end;

------解决方案--------------------

char* TMxtTmProto.EncodeMsgData(const char* rawData)
{
int i;
int len;
char* str;
int n = 0;

len = strlen(rawData);
str = (char*)malloc(sizeof(char) * len * 2;
for(i = 0; i < len; i++)
{
if((rawData[i] == '\x01') 
------解决方案--------------------
 (rawData[i] == '\x04') 
------解决方案--------------------
 (rawData[i] == '\x10') 
------解决方案--------------------
 (rawData[i] == '\x11') 
------解决方案--------------------
 (rawData[i] == '\x13'))
{
str[n++] = '\x10';
str[n++] = (rawData[i] + 0x20) & 0xff;
}
else
{
str[n++] = rawData[i];
}
}
str[n] = '\0';

return str;
}

------解决方案--------------------
string TMxtTmProto_EncodeMsgData(const string& rawData)
{
int len;
string Result("");
len = rawData.length();
for (int i=0; i<len; i++)
{
if ((rawData[i] == 0x01) 
------解决方案--------------------
 (rawData[i] == 0x04) 
------解决方案--------------------

(rawData[i] == 0x10) 
------解决方案--------------------
 (rawData[i] == 0x11) 
------解决方案--------------------

(rawData[i] == 0x13))
{
Result += char(0x10);
Result += char(rawData[i] + 0x20);
}
else
Result += RawData[i];
}
return Result;
}

ls的是c语言