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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
26.12.2011, 15:56     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. #1
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами.
В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed.
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;
}
помогите переделать на си
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 15:56     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed.
Посмотрите здесь:

Дан текстовый файл. Заменить окончание ing каждого слова, встречающегося в заданном предложении на ED и сохранить результат в новый файл. C++
в тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. C++
C++ Заменить ing на ed
Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) C++
C++ Составить программу для подсчета числа одинаковых букв в словах X и Y равной длины, стоящих на одних и тех же местах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
26.12.2011, 19:16     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[] = "Hingo   hing  inglhng i ng ting", *pIng = "ing", *pEd = "ed", *p = NULL, *pTmp = NULL;
    for(p =  strtok(str, " "); p; p = strtok(NULL, " "))
    {
        pTmp = p + strlen(p) - 3;
        if( !strcmp(pIng, pTmp))
        {
            strcpy(pTmp, pEd);
        }
        printf("%s ", p);
    }
    return 0;
}
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
26.12.2011, 20:29  [ТС]     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. #3
тут она везде меняет ing сочетание...а как сделать чтоб именно оканчание слова

Добавлено через 1 час 10 минут
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
#include <stdio.h>
#include <string.h>
 
char abai(char *str)
{
    char *pIng = "ing", *pEd = "ed", *p = NULL, *pTmp = NULL;
    for(p =  strtok(str, " "); p; p = strtok(NULL, " "))
    {
        pTmp = p + strlen(p) - 3;
        if( !strcmp(pIng, pTmp))
        {
            strcpy(pTmp, pEd);
        }
        printf("%s ", p);
    }
    return 0;
}
 
void main()
{int i;
char text[1000], *p=NULL;
 printf("Vvedite text: ");
 scanf("%s",&text);
 abai(text);
 
 
}
переделал в процедуру..почему то делает только для 1 слова
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
26.12.2011, 20:45     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. #4
>переделал в процедуру..почему то делает только для 1 слова
вместо сканф попробуй гетс
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
26.12.2011, 20:50  [ТС]     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. #5
спасиб огромное

Добавлено через 2 минуты
посмотрите пожалуйста http://www.cyberforum.ru/cpp-beginne...ead418268.html
Yandex
Объявления
26.12.2011, 20:50     В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed.
Ответ Создать тему
Опции темы

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