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

Произвести вставку слова «не» перед каждым третьим словом в предложении - C++

Восстановить пароль Регистрация
 
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
30.01.2013, 04:26     Произвести вставку слова «не» перед каждым третьим словом в предложении #1
Подскажите пожалуйста,как дать программе понять,что она наткнулась на пробел,я поискал и не нашел символа отвечающего за пробел...Хотел сделать чтобы после пробелов кратных трем писалось (не)...
Но увы похоже этот способ не осуществим и не рационален,подскажите пожалуйста грамотное решение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2013, 04:26     Произвести вставку слова «не» перед каждым третьим словом в предложении
Посмотрите здесь:

C++ Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова.
C++ Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую
В произвольном тексте вставить между вторым и третьим словом новое слово C++
Перед каждым словом добавить слово C++
Строки. Произвести над каждым символом операцию побитового И C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
30.01.2013, 05:30     Произвести вставку слова «не» перед каждым третьим словом в предложении #2
Цитата Сообщение от КенТюРиК Посмотреть сообщение
не нашел символа отвечающего за пробел
А сам пробел не символ что ли?
C++
1
if( str[i] == ' ' )
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
30.01.2013, 06:12     Произвести вставку слова «не» перед каждым третьим словом в предложении #3
Цитата Сообщение от КенТюРиК Посмотреть сообщение
и не нашел символа отвечающего за пробел...
Цитата Сообщение от UnsKneD Посмотреть сообщение
А сам пробел не символ что ли
плюс числовые значения
0x20
32
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
01.02.2013, 00:50  [ТС]     Произвести вставку слова «не» перед каждым третьим словом в предложении #4
Ввести с клавиатуры предложение. Произвести вставку слова «не» перед каждым третьим словом в предложении.

Помогите реализовать.Я хотел сделать массив из некого количества елементов,но так как если ввести например N[100],то пока не введешь все 100 элементов работать не будет,и поэтому я хотел ввести условие если появляется символ (Enter),то начинается выполнение условия,которое проверяет на кратность символы пробелов и перед кратным трем выводит (не).

Но увы не получилось все соединить воедино.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
01.02.2013, 01:20     Произвести вставку слова «не» перед каждым третьим словом в предложении #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <locale>
 
 
int main()
{
    std::locale::global(std::locale("") );
    std::string wstr;
    std::getline(std::cin, wstr);
    std::istringstream wist(wstr);
    int counter = 0;
    std::for_each(std::istream_iterator<std::string>(wist),
        std::istream_iterator<std::string>(),
        [&counter] (const std::string &ws)
        {
            if (++counter % 3 == 0) std::cout << "не";
            std::cout << ws << " ";
        } );
}
http://liveworkspace.org/code/1x3EoU
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
01.02.2013, 01:40  [ТС]     Произвести вставку слова «не» перед каждым третьим словом в предложении #6
Как все запутанно,неужели все так мудрено?
C++
1
2
3
4
5
6
7
8
 std::locale::global(std::locale("") );
    std::string wstr;
    std::getline(std::cin, wstr);
    std::istringstream wist(wstr);
    int counter = 0;
    std::for_each(std::istream_iterator<std::string>(wist),
        std::istream_iterator<std::string>(),
        [&counter] (const std::string &ws)
Практически все пока для меня темный лес((
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
01.02.2013, 01:55     Произвести вставку слова «не» перед каждым третьим словом в предложении #7
КенТюРиК, в таком случае strtok

Добавлено через 10 минут
Цитата Сообщение от КенТюРиК Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
std::locale::global(std::locale("") ); // устанавливаем локаль
* * std::string wstr; // объявляем переменную типа string
* * std::getline(std::cin, wstr); // считываем до встречи '\n' (до нажатия Enter)
* * std::istringstream wist(wstr); // объявляем объект класса istringstream, для манипуляции со строками, передавая туда в качестве аргумента строку wstr. Теперь можно считывать оттуда как из стандартного потока
* * int counter = 0; // думаю понятно
* * std::for_each(std::istream_iterator<std::string>(wist), // пока удается считать из потока (до EOF) элементы типа std::string
* * * * std::istream_iterator<std::string>(),
* * * * [&counter] (const std::string &ws)// лямбда-функция, извне передается переменная counter по ссылке (замыкание). То, что в круглых скобках - тип объекта, над которым дальше будет идти работа. Проще говоря, мы для каждого элемента std::string из std::istringstream выполняем то, что идет далее
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
01.02.2013, 02:01  [ТС]     Произвести вставку слова «не» перед каждым третьим словом в предложении #8
Большое спасибо сейчас буду разбираться.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
01.02.2013, 02:07     Произвести вставку слова «не» перед каждым третьим словом в предложении #9
"Без понтов"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <locale>
#include <cstring>
 
int main()
{
    std::locale::global(std::locale("") ); // устанавливаем локаль
    char str[256];
    std::cin.getline(str, 256);
    int counter = 0;
    for(char *p = std::strtok(str, " "); p; p = strtok(NULL, " "))
    {
        if (++counter % 3 == 0) std::cout << "не";
        std::cout << p << " ";
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2013, 02:13     Произвести вставку слова «не» перед каждым третьим словом в предложении
Еще ссылки по теме:

C++ В заданном предложении перед каждым словом поставить символ «?»
C++ Вставить перед каждым пробелом запятую
C++ Составить программу, которая добавляет за каждым словом все его падежные формы

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

Или воспользуйтесь поиском по форуму:
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
01.02.2013, 02:13  [ТС]     Произвести вставку слова «не» перед каждым третьим словом в предложении #10
Оуу))
Так намного приятнее,но все равно интерес к первому варианту у меня остался,хочу в нем все полностью понять)

P.s Везде поставил вам спасибо))
Yandex
Объявления
01.02.2013, 02:13     Произвести вставку слова «не» перед каждым третьим словом в предложении
Ответ Создать тему
Опции темы

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