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

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

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

Обработка строк - C++

26.11.2014, 21:06. Просмотров 234. Ответов 1
Метки нет (Все метки)

Есть задание: Написать консольное приложение, реализующее полученный вариант задания, используя конструкции и соответствующие функции стандартной библиотеки языка С.
Ввести с клавиатуры символьную строку длиной не более 80 символов, рассматриваемую как произвольное абстрактное предложение, состоящее из слов. Слова отделяются друг от друга как минимум одним символом пробела. Строка должна быть введена посимвольно с использованием функции getchar(). Из нее построить новую строку, в которой символы в словах расположены в обратном порядке по сравнению с исходной строкой.
Мое решение:
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
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdafx.h"
#include <iostream>
#include <cstring> 
#include<stdlib.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Russian");
    char str[81] = "";
    cout << "Введите строку: " <<endl;
    for (int i = 0; i < 81; i++)
    {
        str[i] = getchar();
        if (str[i] =='\n')
            break;
    }
    system("cls");
    cout << "Ваша строка: ";
    cout << str <<endl; 
    char *mas[81] = {0};
    char *lexeme = strtok(str, " ");
    int i = 0;
    while(lexeme)
    {
        mas[i++] = lexeme;
        lexeme = strtok(NULL, " ");
    }
    i = 0;
    while(mas[i] != 0)
    {
        strrev(mas[i++]);
    }
    i = 0;
    cout << "Ваша строка после выполнения программы: " <<endl;
    while(mas[i] != 0)
    {
        cout << mas[i++] << " ";
    }
    system("pause");
    return 0;
}
Проблема в том, что выводит последнее слово с новой строки. Может кто помочь разобраться в чем дело?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 21:06     Обработка строк
Посмотрите здесь:

Обработка строк - C++
Доброго времени суток! Уважаемые форумчане! Прошу помощи в написании программы, так проблемы с темой обработки строк, так как болел и...

Обработка строк. - C++
Дана строка и слово. Составить функцию, которая образует массив строк, оканчивающихся заданным словом. Каждая новая строка должна...

Обработка строк. - C++
Определить, сколько раз в строке встречается последовательность символов «ВЕС».

Обработка строк - C++
помогите пожалуйста написать вот эти задачи: 1. Дана строка символов. Подсчитать сколько раз среди символов строки встречается символ...

Обработка строк - C++
Нужно обработать строку по условию Вычислить количество вхождений в строку символа, эквивалентиного заданной пользователем цифре. ...

Обработка строк - C++
1. Составить программу для определения количества слов, введенных в тексте 2. Составить программу для определения самого длинного слова,...

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

Обработка строк - C++
Удалить из строки все сдвоенные, строенные и т.д. символы

Обработка строк - C++
Помогите пжласта! Скоро экзамен, вот надо допуск получить. 1. Дана строка символов. Удалить из строки все группы букв abcd. 2....

Обработка строк - C++
Подскажите пожалуйста, как в введенной строке поставить точки перед пробелами


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5116 / 4436 / 1476
Регистрация: 14.04.2014
Сообщений: 17,577
26.11.2014, 21:19     Обработка строк #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Потому что ты символ конца строки сохраняешь при вводе через getchar().
Yandex
Объявления
26.11.2014, 21:19     Обработка строк
Ответ Создать тему
Опции темы

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