11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
1

Обрезка строки

22.10.2015, 15:31. Показов 3433. Ответов 8
Метки нет (Все метки)

Добрый день! Есть такая конструкци:
C++
1
2
3
char buff[2048];
sprintf(buff,"Hello\x00%s!","World");
std::cout << buff << std::endl; // Hello
Как сделать, чтобы символы после \x00 тоже отображались?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2015, 15:31
Ответы с готовыми решениями:

Строки, динамическая память, обрезка строк
Доброго времени суток... Вот задача на дом 2. Показать на экран с m по n символов строки,...

Обрезка заданной строки в файле с обеих сторон
Добрый день. Нужно обрезать текстовый файл, при этом известен текст слева и справа от нужного, но...

Строка - обрезка, замена, перенос
Дана символьная строка &quot;Семенов Виктор Николаевич&quot;. Напечатайте ее в виде &quot;В.Н. Семенов&quot;....

Динамический двумерный массив строк и операции со строками (поиск, обрезка, слияние)
Создать динамический двумерный массив на 10 ячеек (для десяти строк). Заполнить его строчками...

8
2 / 2 / 2
Регистрация: 07.10.2015
Сообщений: 11
22.10.2015, 15:42 2
Драсьте! символ 0 - это конец строки и он отображается как.... как конец строки)

Добавлено через 6 минут
может \x20 (пробел) нужен был? либо же код А или С (перевод строки и ещё что-то с ним связанное)
0
2753 / 1908 / 568
Регистрация: 05.06.2014
Сообщений: 5,559
22.10.2015, 15:50 3
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
int main()
{
    std::string str="Hello";
    str.push_back(0);
    str+="World";
    str+="!";
    std::cout<<str;
    return 0;
}
0
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
22.10.2015, 15:52  [ТС] 4
Нет, нужен именно \x00

Со string эта проблема решается так:
C++
1
2
3
4
5
msg = std::string("Hello\x00World!");
std::cout << msg << std::endl; // Hello
 
msg = std::string("Hello\x00World!", 12);
std::cout << msg << std::endl; // HelloWorld!
А вот как быть с char[] ?
0
2753 / 1908 / 568
Регистрация: 05.06.2014
Сообщений: 5,559
22.10.2015, 15:54 5
Цитата Сообщение от Кузнец Посмотреть сообщение
А вот как быть с char[] ?
std::cout.write("Hello\x00Worl d!",12);
0
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
22.10.2015, 15:58  [ТС] 6
Только у меня не сразу в вывод идёт, там переменная buff. В неё как записать?
Следующий вариант не работает:
C++
1
strncpy(buff, "Hello\x00World!", 12);
0
2753 / 1908 / 568
Регистрация: 05.06.2014
Сообщений: 5,559
22.10.2015, 16:01 7
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
#include<sstream>
int main()
{
    std::ostringstream buf;
    buf.write("Hello\x00World!",12);
    std::cout<<buf.str();
    return 0;
}
Добавлено через 52 секунды
Цитата Сообщение от Кузнец Посмотреть сообщение
Следующий вариант не работает:
Строки с нулевым символом умеет только string. В сишные вы их никак не запихаете.
0
3174 / 1933 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
22.10.2015, 16:15 8
memcpy(buff, "Hello\x00World!", 13);
0
Почетный модератор
Эксперт С++
5848 / 2859 / 392
Регистрация: 01.11.2011
Сообщений: 6,905
22.10.2015, 16:35 9
Это к разговору как сбить с толку себя и тех, кто хочет помочь.
Кузнец, вы создали тему под названием "Обрезка строки". И привели пример вывода ее в поток.
А оказалось надо было скопировать в буфер строку, содержащую в середине нулевой символ.

Добавлено через 1 секунду
Это к разговору как сбить с толку себя и тех, кто хочет помочь.
Кузнец, вы создали тему под названием "Обрезка строки". И привели пример вывода ее в поток.
А оказалось надо было скопировать в буфер строку, содержащую в середине нулевой символ.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2015, 16:35
Помогаю со студенческими работами здесь

Обрезка строки
Подскажите, пожалуйста, как удалить из строки первое вхождение &quot;for&quot;

Обрезка строки
Привет! Как мне обрезать строку типа...

обрезка строки
всем добрый день. кто-нибудь подскажите, как мне из строки &quot;МАМА, МЫЛА, РАМУ,ВЧЕРА&quot; сделать...

Обрезка строки
Доброго времени суток. Ковыряю один движок и там название тем в форуме выводится, как &lt;?=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru