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

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

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

В тех словах, которые оканчиваются сочетанием букв ing, заменить окончание на ed - C++

27.10.2010, 16:55. Просмотров 1114. Ответов 10
Метки нет (Все метки)

Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами.
В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В тех словах, которые оканчиваются сочетанием букв ing, заменить окончание на ed (C++):

В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. - C++
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. В...

В словах, которые заканчиваются сочетанием букв ing, заменить это окончание на ed - C++
Вводит символьный массив из 16 символов. Группы символов, разделенные пробелами. В этих словах, которые заканчиваются сочетанием букв ing,...

В тех словах, которые окончиваются сочетанием букв "ть", заменить его окончание на "ил" - C++
дана строка. группы символов, разделенные пробелами и не содержащих пробелов внутри себя, называются словами. в тех словах, которые...

Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) - C++
ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС... помогите просто определить 3 последнии буквы,и...

Дан текстовый файл. Заменить окончание ing каждого слова, встречающегося в заданном предложении на ED и сохранить результат в новый файл. - C++
Всем вечер добрый. Хотелось бы, чтоб кто-нибудь помог с прогой. Её текст ниже: Дан текстовый файл. Заменить окончание ing каждого...

Вывести на экран числа, кроме тех, которые делятся на 3 или оканчиваются на 3 - C++
Задача такова: Даны натуральные числа . Вывести на экран эти числа, кроме тех, которые делятся на 3 или оканчиваются на 3. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.10.2010, 17:07 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
seerg0,

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 <vector>
#include <string>
#include <sstream>
#include <iostream>
 
int main()
{
    std::string Find="ing";
    std::string Ins="ed";
    std::string Str="Hello hing and ning and ting ying";
    std::istringstream ist(Str);
    std::vector<std::string> Vec;
    std::string Temp;
    while(ist>>Temp)
        Vec.push_back(Temp);
    for(size_t i=0; i<Vec.size(); ++i)
    {
         std::string::iterator Iter=Vec[i].end()-Find.size();
         std::string Str="";
         Str.assign(Iter, Vec[i].end());
         if(Str==Find)
         {
             Vec[i].erase(Iter, Vec[i].end());
             Vec[i]+=Ins;
         }
    }
    for(size_t i=0; i<Vec.size(); ++i)
    std::cout<<Vec[i]<<' ';
    std::cout<<std::endl;
    return 0;
}
p1ka4y777
2 / 2 / 0
Регистрация: 04.10.2013
Сообщений: 155
01.12.2013, 08:16 #3
почему если это:
Цитата Сообщение от ForEveR Посмотреть сообщение
string Str="Hello hing and ning and ting ying";
заменить на:
C++
1
2
3
string Str;
cout << "Enter string: " << endl;
cin >> Str;
то одно слово, например, "playing", меняет на "played", а если вводишь целое предложение, то нет?
gray_fox
What a waste!
1507 / 1210 / 68
Регистрация: 21.04.2012
Сообщений: 2,545
Завершенные тесты: 3
01.12.2013, 09:21 #4
p1ka4y777, потому что cin >> str запишет в str символы до пробельного (' ', '\t' и т.д.).

Добавлено через 1 минуту
т.е. только одно слово.

Добавлено через 46 минут
как вариант:
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
#include <iostream>
#include <string>
 
 
int main() {
    std::string const toReplace    = "ing";
    std::string const replacement  = "ed";
    std::string const separators   = " ";
    
    std::string string = " Hello  hing and   ning and ting ying ";
    
    for (std::string::size_type first = 0, last = 0; ; ) {
       first = string.find_first_not_of(separators, last);
       if (first == std::string::npos) {
          break;
       }
       
       last = string.find_first_of(separators, first);
       if (last == std::string::npos) {
          break;
       }
       
       std::string::size_type wordLength = last - first;
       if (wordLength >= toReplace.length()) {
          std::string::size_type tailFirst = last - toReplace.length();
          if (string.compare(tailFirst, toReplace.length(), toReplace) == 0) {
             string.replace(tailFirst, toReplace.length(), replacement);
          }
       }
    }
    
    std::cout << string << std::endl;
}
p1ka4y777
2 / 2 / 0
Регистрация: 04.10.2013
Сообщений: 155
01.12.2013, 09:55 #5
gray_fox, спасибо, пример тоже хороший!
но всё же...
хотел бы чтобы текст вводился с консоли...
т.е. на сколько я понял это как то так должно быть?
C++
1
2
3
text[n];
cout << "Enter text:\n" << endl;
gets_s(text);
gray_fox
What a waste!
1507 / 1210 / 68
Регистрация: 21.04.2012
Сообщений: 2,545
Завершенные тесты: 3
01.12.2013, 10:01 #6
p1ka4y777, советую пользоваться std::string, а не С-строками. Если до превода строки прочитать, то есть std::getline:
C++
1
2
std::string string;
std::getline(std::cin, string);
С массивом char:
C++
1
2
char text[n];
std::cin.getline(text, n);
p1ka4y777
2 / 2 / 0
Регистрация: 04.10.2013
Сообщений: 155
01.12.2013, 10:48 #7
getline... забыл)
Цитата Сообщение от gray_fox Посмотреть сообщение
for (std::string::size_type first = 0, last = 0; ; )
в 12 строчке всё нормально или вы что-то пропустили? (или так машинально ";" поставили)
gray_fox
What a waste!
1507 / 1210 / 68
Регистрация: 21.04.2012
Сообщений: 2,545
Завершенные тесты: 3
01.12.2013, 11:04 #8
Цитата Сообщение от p1ka4y777 Посмотреть сообщение
в 12 строчке всё нормально или вы что-то пропустили? (или так машинально ";" поставили)
Да нет. Хотя наверное стоит заменить на
C++
1
2
std::string::size_type first = 0, last = 0;
while (true) {
p1ka4y777
2 / 2 / 0
Регистрация: 04.10.2013
Сообщений: 155
01.12.2013, 11:17 #9
Цитата Сообщение от gray_fox Посмотреть сообщение
td::string::size_type first = 0, last = 0; while (true) {
думаю не стоит... оно только "ing" тогда меняет, если оно встречается отдельно от слова (целого)

Добавлено через 3 минуты
так что на счёт этого:
Цитата Сообщение от p1ka4y777 Посмотреть сообщение
C++
1
for (std::string::size_type first = 0, last = 0; ; )
просто без последнего ";" цикл не пойдет... да и выглядит это как-то... не так)
gray_fox
What a waste!
1507 / 1210 / 68
Регистрация: 21.04.2012
Сообщений: 2,545
Завершенные тесты: 3
01.12.2013, 11:20 #10
Цитата Сообщение от p1ka4y777 Посмотреть сообщение
думаю не стоит... оно только "ing" тогда меняет, если оно встречается отдельно от слова (целого)
:/ код аналогичный http://ideone.com/4fG7k7

Добавлено через 1 минуту
Цитата Сообщение от p1ka4y777 Посмотреть сообщение
просто без последнего ";" цикл не пойдет... да и выглядит это как-то... не так)
у for синтаксис такой, конечно "не пойдёт"...
p1ka4y777
2 / 2 / 0
Регистрация: 04.10.2013
Сообщений: 155
01.12.2013, 11:28 #11
Цитата Сообщение от gray_fox Посмотреть сообщение
у for синтаксис такой
та я знаю, но всё равно... как-то "некрасиво")
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 11:28
Привет! Вот еще темы с ответами:

Заменить в словах окончания "ing" на "ed". - C++
Дана последовательность английских слов. В словах, которые оканчиваются сочетанием букв &quot;ing&quot;, заменить это окончание на &quot;ed&quot;. Помогите...

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

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

Вычислить количество слов анаграмм (Слова которые состоят из одних и тех же букв) - C++
Дано предложение, необходимо посчитать количество анаграмм в этом предложении. Пример: Ввод: abc cba two abcc. Вывод: 2. (это...


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

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

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