У меня есть строка с числами, включая 0. К сожалению, строка распознает число 0 как \ 0 и заканчивает чтение. Есть ли способ интерпретировать 0 как 0 и прочитать его? Моя программа написана на C ++.
char buf[] = { 23, 4, 0, 234, 8}
string test(buf);
В этом случае строка test будет содержать 23 и 4. Но для моего случая она должна содержать 23, 4, 0, 234 и 8.
Эти способы мне не подходят:
string test "abc\0\0def"s;
string test R"abc\0\0def";
Я пытался сделать string test(buf, 5);
как предложенный ниже ответ, но это не сработало:
#include<cstring>
#include<iostream>
#include <string>
using namespace std;
int main()
{
char buf[]={10, 20, 0, 30, 40};
string test(buf, 5);
cout<<test.length()<<endl;
char final[5]={0,0,0,0,0};
strncpy(final, test.c_str(),5);
for(int i=0; i<5; i++)
{cout<<(int)final[u]<<endl;}
}