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

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

Восстановить пароль Регистрация
 
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
15.05.2014, 23:20     Перенос слова на новую строку полностью #1
Здравствуйте, вопрос описан в заголовке темы, могу добавить только более подробное разъяснение: когда запускаю программу, выдаёт перенос слов при границах окна консоли, это понятно, но слово переносит не полностью, а по-символьно, а я хочу слово перенести целиком, надеюсь на помощь. P.S. Если не трудно, подскажите как действовать в случае знаков вроде: "-,^,:,?,!", и так далее, если слово вместе с ним, то как их с ним перенести (если есть какие-то особенности переноса в данных случаях).

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

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

Скопировать в новую строку нужный символ из слова C++
C++ Дана строка S и натуральное число N. Создать новую строку, включив в нее все слова из N букв исходной строки
C++ перенос на новую строку
Си: Выдать слова текста и их длины, Сформировать новую строку по правилу C++
Создать новую строку, поместив в него все слова входной строки, взяв каждое слово в кавычки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
15.05.2014, 23:28     Перенос слова на новую строку полностью #2
Цитата Сообщение от Naginata Посмотреть сообщение
но слово переносит не полностью, а по-символьно,
Кто переносит? Где код?
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. Содержание введённого текста никакого особого значения не имеет.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.05.2014, 18:01     Перенос слова на новую строку полностью #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Naginata Посмотреть сообщение
в консоли слова переносит не целиком, а по-символьно
Потому что для системы нет никаких слов. Для нее ваша строка это просто набор равноправных символов.
Чтобы выводить с переносом слов нужно:
1. Определить ширину консоли в символах.
2. Разбить исходную строку по пробелам (или знакам препинания) с учетом ширины консоли.
3. Вывести полученные подстроки обычным способом.

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

Добавлено через 3 минуты
Только метод который вы описали делается пользователем вручную, а мне интересно, есть ли команда или программный алгоритм для такого, функция какая-то или что-то в этом роде.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
16.05.2014, 18:33     Перенос слова на новую строку полностью #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Используйте windows окна, в них слова переносятся,
например
C++
1
2
3
4
MessageBox(NULL,
        "Однажды идя домой я заметил свет исходящй из кустов и я был ошарашен тем что я увидел в кустах лежал крайне приметной раскраски шар затем подойдя к нему ближе что то меня коснулось и я проснулся оказалось это был сон "
        "Однажды идя домой я заметил свет исходящй из кустов и я был ошарашен тем что я увидел в кустах лежал крайне приметной раскраски шар затем подойдя к нему ближе что то меня коснулось и я проснулся оказалось это был сон\n"
        ,"NNN",MB_OK);
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", верно?
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
16.05.2014, 19:03     Перенос слова на новую строку полностью #8
Выберите в настройках проекта "Не использовать уникод"
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 19:16  [ТС]     Перенос слова на новую строку полностью #9
Сделал как вы сказали и заработало, правда я хотел, чтобы это отображалось именно в консоли, но не суть важно, большое вам спасибо, только у меня вопрос, я становлюсь чем-то ограничен в написании кода, когда я отключаю Unicode?
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
16.05.2014, 19:57     Перенос слова на новую строку полностью #10
Цитата Сообщение от Naginata Посмотреть сообщение
чем-то ограничен в написании кода
Для уникода есть свой набор функций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 20:21     Перенос слова на новую строку полностью
Еще ссылки по теме:

C++ Как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле?
C++ Из Pascal в C++ (Сформировать новую строку, в которой слова будут следовать в обратном порядке)
Дана строка, состоящая из четырех слов. Сформировать новую строку, где первое и последнее слова поменяются C++

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

Или воспользуйтесь поиском по форуму:
Naginata
-65 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 60
16.05.2014, 20:21  [ТС]     Перенос слова на новую строку полностью #11
Я не понял что вы имеете ввиду, функций в смысле как параметров настройки или как имеет собственные функции для классов и так далее, или вы вообще о другом?

Добавлено через 2 минуты
А вот ещё что, вы не знаете, как найти в тексте одинаковые слова или выражаясь по-другому, одинаковый порядок символов?
Yandex
Объявления
16.05.2014, 20:21     Перенос слова на новую строку полностью
Ответ Создать тему
Опции темы

Текущее время: 20:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru