Как вывести char* по всю длину игнорируя '\0'?
У меня есть строка, в которой есть куча '\0' символов и мне нужно их учитывать при выводе.
Пример:
char *data1 = "a\0bcd\nefg\01234";
std::cout << data1 << std::endl;
Вывод будет таким:
а
Когда ожидается:
a bcd
efg 1234
Как работать со всей длиной строк вида char*?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Встречный вопрос - а как вы определите, сколько у вас символов в строке?
Вот если
char data1[] = "a\0bcd\nefg\01234";
тогда можно посимвольно (и то, если data1 не передается куда-то в функцию):
for(auto c: data1) cout << c; cout << endl;
Если будете передавать в другую функцию - то только вместе с размером. Или через какой-то вектор, строку C++ и т.п.
На всякий случай - учтите, что в вашей конкретной строке как символ будет рассматриваться \012, а не просто \0.