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

Работа с текстовой строкой - C++

Восстановить пароль Регистрация
 
RiseOFG
 Аватар для RiseOFG
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 2
30.11.2013, 01:13     Работа с текстовой строкой #1
Здравствуйте уважаемые учасники форума, вот не задача, учусь в университете (1 курс), делал последнее задание на дом, сделал 4 из 5 задач, но последнюю никак не могу. Попалась работа с текстовой строкой, а я практически в этом не разбираюсь.
Буду очень благодарен, если кто-то хотя бы опишет последовательность действий, а если будет настроение, набросает примерный код.
Благодарю за внимание, с меня "+".

Задание:
С клавиатуры вводиться текстовая строка. Написать програму, которая подсчитывает количество чисел в тексте (не цифр, а чисел); выводит на екран все слова, написаные только латинскими буквами, удаляет каждое второе слово
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 01:13     Работа с текстовой строкой
Посмотрите здесь:

C++ Работа со строкой
Работа с текстовой информацией, одномерными массивами и матрицами. C++
Работа со строкой C++
Работа со строкой C++
работа со строкой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
arcana
 Аватар для arcana
2 / 2 / 2
Регистрация: 20.09.2013
Сообщений: 20
30.11.2013, 17:34     Работа с текстовой строкой #2
1 up
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 17:41     Работа с текстовой строкой #3
Цитата Сообщение от RiseOFG Посмотреть сообщение
удаляет каждое второе слово
В строке? Их там много, вторых?
Taatshi
30.11.2013, 19:52
  #4

Не по теме:

arcana, клонирование на форуме запрещено. У Вас проблемы со входом? Отпишите мне в личку

RiseOFG
 Аватар для RiseOFG
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 2
01.12.2013, 00:52  [ТС]     Работа с текстовой строкой #5
Taatshi, мы разные люди, утром брат апнул тему.

Добавлено через 1 минуту
alsav22, к примеру ввожу текст: "Это пример текста для форума", должны быть удалены слова: "пример" и "для".
Taatshi
01.12.2013, 00:54
  #6

Не по теме:

RiseOFG, ясн

FAQEnD
 Аватар для FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
01.12.2013, 01:56     Работа с текстовой строкой #7
не реализовал функцию вывода слов, которые состоят только из латиницы, потому что есть вопрос:
В слове не может быть цифр/точек/запятых?
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
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    //Сколько же у нас чисел? Узнаем ниже:
    string str;
    int j, nums(0);
    cout<<"Enter str"<<endl;
    getline(cin, str);
    str+=' ';
    for(int i = 0; i < str.size(); i++)
    {
        j = i;
        while(isdigit(str[j]))//текущий символ цифра?
            {
                j++;
                i = j;
                if(!isdigit(str[j]))//как? уже не цифра? Тогда все пред. символы цифр были одним числом
                    nums++;
            }
    }
    cout<<"We have "<<nums<<" nums"<<endl;
    //Убираем каждое второе слово ниже:
    int space_count(0), word_start(0), word_end(0), word_count(1);
    for(int i = 0; i < str.size(); i++)
    {
        if(str[i] == 32)//если текущий символ равен пробелу
        {
            space_count++;
            if(space_count == 1)
            {
                word_start = i;//начало слова
                for(j = i+1; j < str.size(); j++)
                    if(str[j] == 32)
                    {
                        word_end = j;//конец
                        break;
                    }
            }
        }
        if(space_count == 1)
        {
            str.erase(word_start, word_end - word_start);//вырезаем от начала, и колличество символов конец - начало
            space_count = 0;
        }
    }
    cout<<str;
    system("Pause");
    return 0;
}
arcana
 Аватар для arcana
2 / 2 / 2
Регистрация: 20.09.2013
Сообщений: 20
01.12.2013, 02:10     Работа с текстовой строкой #8
FAQEnD, нет, в словах не будет точек, заятых, чисел. Пока спасибо, буду сейчас разбираться.

Добавлено через 3 минуты
Аааа, это гениально, посмотреть есть ли после цифры пробел
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.12.2013, 11:37     Работа с текстовой строкой #9
Цитата Сообщение от RiseOFG Посмотреть сообщение
alsav22, к примеру ввожу текст: "Это пример текста для форума", должны быть удалены слова: "пример" и "для".
И при чём здесь тогда каждое второе ("На первый второй рассчитайсь!")? Это если бы несколько строк было, то было бы понятно: каждое второе, в каждой строке. Тут удаляются все чётные в строке.
Croessmah
01.12.2013, 11:44
  #10

Не по теме:


Допустим, у нас есть класс в котором 10 девочек и 10 мальчиков.
Тогда по теории ТС каждый второй ученик в классе - это мальчик,
а по теории alsav22, каждый четный ученик в классе - мальчик
если в классе 5 мальчиков и 10 девочек (ух повезло), то
ТС: каждый третий ученик в классе - мальчик
alsav22: даже не знаю...

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.12.2013, 12:06     Работа с текстовой строкой #11

Не по теме:

Croessmah, ничего не понял...


Для ТС добавлю, что условие могло быть таким, если бы строка состояла из нескольких предложений. Тогда нужно было добавить: удаляет каждое втрое слово в предложениях.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
01.12.2013, 12:13     Работа с текстовой строкой #12
Цитата Сообщение от alsav22 Посмотреть сообщение
Croessmah, ничего не понял...
расчитайте слова в тексте на первый-второй, получите:
Работа с текстовой строкой
вот удалить нужно каждое слово, помеченное двойкой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 12:43     Работа с текстовой строкой
Еще ссылки по теме:

Работа со строкой C++
Как с текстовой строкой сделать следующее ? C++
C++ работа со строкой

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

Или воспользуйтесь поиском по форуму:
alsav22
01.12.2013, 12:43     Работа с текстовой строкой
  #13

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
расчитайте слова в тексте на первый-второй, получите:
Это понятно, поэтому я и написал:
Цитата Сообщение от alsav22 Посмотреть сообщение
И при чём здесь тогда каждое второе ("На первый второй рассчитайсь!")?
Т.е., если "На первый второй рассчитайсь!", то только тогда совпадает с примером ТС. Но я так условие, описанное в первом посте, не понимаю. Если каждое чётное, тогда понятно. Может для других и так понятно, что нужно сделать расчёт на первый второй, не знаю.


Не по теме:

Почему тогда не рассчитаться на первый, второй, третий (в задании ведь про рассчёт ничего нет) и удалять каждое второе?

Yandex
Объявления
01.12.2013, 12:43     Работа с текстовой строкой
Ответ Создать тему
Опции темы

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