Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
#1

Перенос слова на новую строку полностью - C++

15.05.2014, 23:20. Просмотров 1325. Ответов 10
Метки нет (Все метки)

Здравствуйте, вопрос описан в заголовке темы, могу добавить только более подробное разъяснение: когда запускаю программу, выдаёт перенос слов при границах окна консоли, это понятно, но слово переносит не полностью, а по-символьно, а я хочу слово перенести целиком, надеюсь на помощь. P.S. Если не трудно, подскажите как действовать в случае знаков вроде: "-,^,:,?,!", и так далее, если слово вместе с ним, то как их с ним перенести (если есть какие-то особенности переноса в данных случаях).

Добавлено через 4 минуты
А вот ещё что, как выделить одинаковые слова?

Добавлено через 4 часа 8 минут
Это сообщение добавлено дабы тема вернула себе статус "активна" и была замечена пользователями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 23:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перенос слова на новую строку полностью (C++):

Перенос на новую строку - C++
У меня довольно длинная функция класса, которая от меня то и не зависит, но нужно её вписать, строка получается длинная и хочется перенести...

Избыточный перенос на новую строку при отображении значения типа string - C++
Когда ввожу проиpвольное значение в терминал, к примеру: asdsad dfadf. То программа выдает ответ: Output: asdsad dfadf. Т.е...

Скопировать в новую строку нужный символ из слова - C++
Добрый вечер! Подскажите, пожалуйста, с данной задачей. Разбиваю строку на слова, считаю кол-во символов, но не понимаю как скопировать в...

Си: Выдать слова текста и их длины, Сформировать новую строку по правилу - C++
Задание: Задан некоторый текст, состоящий из слов. Словом считать последовательность символов, не содержащую пробел или другие знаки...

Копировать в новую строку слова исходной, саключенные в круглые скобки - C++
Здравствуйте! Подскажите, пожалуйста, как выполнить действия над строкой именно в определенном промежутке, между двух указателей. Какой...

Из Pascal в C++ (Сформировать новую строку, в которой слова будут следовать в обратном порядке) - C++
Сформировать новую строку, в которой слова будут следовать в обратном порядке. Найти первое цифровое слово и заменить его обратным...

10
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.05.2014, 23:28 #2
Цитата Сообщение от Naginata Посмотреть сообщение
но слово переносит не полностью, а по-символьно,
Кто переносит? Где код?
0
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 17:41  [ТС] #3
Хорошо, раз так неясно, вот код, при запуске программы в консоли слова переносит не целиком, а по-символьно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include "iostream"
#include <stdio.h> 
#include <locale>
 
using namespace std;
        
void main(void)
{setlocale(LC_ALL,"RUSSIAN");
char str[250]="Однажды идя домой я заметил свет исходящй из кустов и я был ошарашен тем что я увидел в кустах лежал крайне приметной раскраски шар затем подойдя к нему ближе что то меня коснулось и я проснулся оказалось это был сон\r\n" ;
cout << str << endl;
}
P.S. Содержание введённого текста никакого особого значения не имеет.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.05.2014, 18:01 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Naginata Посмотреть сообщение
в консоли слова переносит не целиком, а по-символьно
Потому что для системы нет никаких слов. Для нее ваша строка это просто набор равноправных символов.
Чтобы выводить с переносом слов нужно:
1. Определить ширину консоли в символах.
2. Разбить исходную строку по пробелам (или знакам препинания) с учетом ширины консоли.
3. Вывести полученные подстроки обычным способом.

Решение п.1. зависит от используемой платформы. Т.к. в стандарте языка параметры консоли не описаны.
1
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 18:23  [ТС] #5
Про то, почему консоль так переносит слова, я знаю, а вот за то, как это решить, спасибо.

Добавлено через 3 минуты
Только метод который вы описали делается пользователем вручную, а мне интересно, есть ли команда или программный алгоритм для такого, функция какая-то или что-то в этом роде.
0
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,367
Завершенные тесты: 1
16.05.2014, 18:33 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Используйте windows окна, в них слова переносятся,
например
C++
1
2
3
4
MessageBox(NULL,
        "Однажды идя домой я заметил свет исходящй из кустов и я был ошарашен тем что я увидел в кустах лежал крайне приметной раскраски шар затем подойдя к нему ближе что то меня коснулось и я проснулся оказалось это был сон "
        "Однажды идя домой я заметил свет исходящй из кустов и я был ошарашен тем что я увидел в кустах лежал крайне приметной раскраски шар затем подойдя к нему ближе что то меня коснулось и я проснулся оказалось это был сон\n"
        ,"NNN",MB_OK);
1
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 18:48  [ТС] #7
Может я что-то не до ввёл, но выдаёт ошибку: error C2664: MessageBoxW: невозможно преобразовать параметр 2 из "const char [218]" в "LPCWSTR", Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции - вот так. Я так понял, надо их в разных функциях описать или воспользоваться этим "reinterpret_cast", верно?
0
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,367
Завершенные тесты: 1
16.05.2014, 19:03 #8
Выберите в настройках проекта "Не использовать уникод"
1
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 19:16  [ТС] #9
Сделал как вы сказали и заработало, правда я хотел, чтобы это отображалось именно в консоли, но не суть важно, большое вам спасибо, только у меня вопрос, я становлюсь чем-то ограничен в написании кода, когда я отключаю Unicode?
0
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,367
Завершенные тесты: 1
16.05.2014, 19:57 #10
Цитата Сообщение от Naginata Посмотреть сообщение
чем-то ограничен в написании кода
Для уникода есть свой набор функций.
0
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 20:21  [ТС] #11
Я не понял что вы имеете ввиду, функций в смысле как параметров настройки или как имеет собственные функции для классов и так далее, или вы вообще о другом?

Добавлено через 2 минуты
А вот ещё что, вы не знаете, как найти в тексте одинаковые слова или выражаясь по-другому, одинаковый порядок символов?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 20:21
Привет! Вот еще темы с ответами:

Сформировать новую строку, в которой слова исходной будут следовать в обратном порядке - C++
Нужна срочно ваша помощь...Не могу написать код для следующей задачи: &quot;Задан текст, состоящий из слов, записанных через запятые и/или...

Записать в новую строку слова исходной строки, в которых повторяющихся букв больше неповторяющихся - C++
Условие задачи:Записать в новую строку слова исходной строки, в которых повторяющихся букв больше неповторяющихся.(Выполнить следующие...

Записать в новую строку все слова исходной строки у которых количество букв кратно 3 - C++
Ввести рядок s, длинною до 70-и символов. В рядах s3 записать все слова ряда S, в каких количество букв кратно 3.

Дана строка, состоящая из четырех слов. Сформировать новую строку, где первое и последнее слова поменяются - C++
дана строка состоящая из четырех слов сформировать новую строку в которой первое и последнее слова поменяются местами


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
16.05.2014, 20:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru