我想用换行符替换某个字符。这是我的代码:
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字节。
有没有一种简单的方法可以达到这个目的?
答案 0 :(得分: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;
}