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

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

Войти
Регистрация
Восстановить пароль
 
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
#1

Обрыв строк - C++

04.10.2012, 19:18. Просмотров 442. Ответов 7
Метки нет (Все метки)

Пишу программу для обработки строк. Возникла следующая проблема: при вводе в string-переменную строки, содержащей пробел обрывается запись в char-массив (размером = длинне строки) символов строки (по 1). Как забить массив всем содержимым строки, включая пробелы и следующие после них символы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 19:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обрыв строк (C++):

Обрыв функции при вызове метода из объекта другого класса - C++
Почему выполнение функция обрывается на вызове метода из объекта другого класса? DataBuffer.cpp //Получаем класс FirstDlg void...

Самая длинная общая подпоследовательность строк/ НОП строк (Динамическое программирование) - C++
Доброго времени суток. Помогите пожалуйста разобраться с алгоритмом НОП строк. Суть алгоритма. Необходимо найти самую длительную...

По некоторому количеству строк (не более N) найти пары строк с общим словом - C++
По некоторому количеству строк (не более N) найти пары строк с общим словом. помогите, пожалуйста. слишком быстро перескочили и со...

Вводится массив строк текста с неизвестным заранее количеством строк - C++
1)Вводится массив строк текста с неизвестным заранее количеством строк.Ввод текста заканчивается, если введенная строка текста будет равна...

Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы - C++
Мир всем, помогите понять суть задания: "Две строки матрицы назовем похожими, если совпадают множества чисел встречающихся в этих...

Реализовать функцию перемещения строк, принимающую в качестве параметров два вектора строк - C++
Подскажите насколько правильно решена задача. условие: Напишите функцию MoveStrings, которая принимает два вектора строк, source и...

7
BuPy7
Нет ТЗ - давай досвидания
730 / 357 / 35
Регистрация: 01.12.2011
Сообщений: 2,148
04.10.2012, 20:13 #2
Функция cin.getline() и будет вам счастье.
Функция имеет три параметра:
1) ссылка на массив символов
2) количество считываемых символов
3) символ указывающий на конец строки (не обязательно, по умолчанию "\0")
1
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
04.10.2012, 20:13 #3
akimo, сначала вводится в string, а затем из нее считывается в массив типа char? Полное задание есть?
0
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
04.10.2012, 22:48  [ТС] #4
BumerangSP, На данный момент моя программа превращает любую введенную строку в палиндром. Теперь осталось сделать так, чтобы программа обрабатывала предложения.
P.S. Пример работы моей программы: Ввод: "Privet Mir"; Вывод: "PriirP", а надо чтобы вывод был: "PriirP MiM".
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
04.10.2012, 23:04 #5
akimo, getline помогла?
0
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
04.10.2012, 23:10  [ТС] #6
Сейчас ковыряюсь с ней, думаю как ее пристроить к коду. Если не выйдет, то отпишусь.
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
04.10.2012, 23:18 #7
C++
1
2
 char str[20];
 std::cin.getline(str,20);
Так и пристроить. В str будет содержаться вся введенная строка.
0
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
04.10.2012, 23:22  [ТС] #8
Да, нашел уже на форуме примеры использования, кстати хорошая штука, с ней у меня код сократился сильно.
Изначально вот какая штука была:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string s;
    cin >> s;
    int sz = s.length(), j = (sz / 2) + 1; char c[sz];
    if (sz % 2 != 0) {
        for (int i = 0; i < sz; ++ i)
            c[i] = s[i];
        for (int i = (sz / 2) + 2; i <= sz; ++ i) {
            j -= 1;
            c[i - 1] = c[j - 1];
        }
        for (int i = 0; i < sz; ++ i)
            cout << c[i];
    }
    else {
        for (int i = 0; i < sz; ++ i)
            c[i] = s[i];
        for (int i = (sz / 2) + 1; i <= sz; ++ i) {
            j -= 1;
            c[i - 1] = c[j - 1];
        }
        for (int i = 0; i < sz; ++ i)
            cout << c[i];
    }
    return 0;
}
0
04.10.2012, 23:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 23:22
Привет! Вот еще темы с ответами:

Найти сумму всех чётных строк матрицы и отсортировать элементы нечётных строк по возрастанию - C++
1.Задана матрица целых чисел.Найти сумму всех четных строк матрицы и отсортировать элементы не четных строк по возрастанию.

Программа для поиска соответствие строк, учитывая регистр, в текстовом файле с 10000+ строк - C++
Уважаемые форумчане, прошу у вас помощи я неделю в поисках. Мне нужна программа или код для поиска слов, очень похожую на расширение Pearls...

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

Упорядочить по росту сумм элементов строк строки той матрицы, у которой больше нулевых строк - C++
Сидел думал над задачей почти всю ночь условия такие Даны три матрицы размером M x N. Упорядочить по росту сумм элементов строк строки ...


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

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

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