0

特定の文字を改行に置き換えたい。これが私のコードです:

char *string = ReadResource(); //returns pointer to array using memcpy()
char *FinalString = string;   
for(int x=0; x< int(SizeOfRes); x++)
      {
          if (string[x] == char(84)) 
            FinalString[x] = HERE DO I WANT A NEWLINE;

          else 
            FinalString[x] = string[x];
      }

char *これはメモリに格納された配列へのポインタであるため、読み取り専用であるため、使用はFinalString[x] = '\n';機能しません。

しかしstrcpy()、NULLバイトが含まれているため、配列もできません。

これを達成する簡単な方法はありますか?

4

1 に答える 1

4

memcpy()配列にNULL文字が含まれている場合に使用します。

動作する基本的なプログラム:

#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;

int main(int argc, char *argv[])
{
  char *cbuffer = "hello \x00world";
  char buffer[12];
  memcpy((void *)buffer, (void *)cbuffer, 12);
  buffer[2] = 'h';  
  ofstream ofs ("nullfile.bin", ios::binary);
  ofs.write(buffer,12);
  return 0;
}
于 2013-02-07T17:30:04.237 に答える