Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 5
1

Записать в предложении символы длинного слова (всех длинных, если их несколько) в обратном порядке

07.11.2016, 08:41. Показов 616. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Поиогите пожалуйста не получается та часть кода где нужно найти и записать в обратном порядке слова.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <iostream>
#include <cctype>
#include <string>
#include <cstring>
using namespace std;
int main() {
    int max(0),maxd(0);
    setlocale(LC_ALL, "Russian");
vv:
d:
                        cout<<"Введите максимальную длинну вводимой строки(1-80)"<<endl;
                        cin>>maxd;
                        if ((maxd<=0)||(maxd>80))
                                        {
                                         cout<<"Некоректное значение!"<<endl;
goto d;
                                        }
                        cin.ignore();
char *strik=new char[maxd];
char stroka[80];
char res[5][20];
int i(0),st(0),tch(0),tchn(0),prob(0);
 
    cin.ignore();
                        cout<<"Введите строку"<<endl;
                        gets(stroka);
                        stroka[maxd]='\0';
                        stroka[maxd-1]='.';
                        strcpy(strik,stroka);
 
for(i=0;i<(strlen(strik));i++)
                        {
                            if(strik[i] != '.')
                                                {
                                                    tchn++;
                                                }
                            if(strik[i] == '.')
                                                {
                                                    tch=i;
                                                    goto tochka;    
                                                }
                            if(strik[i] == ' ')
                                                {
                                                prob++; 
                                                }
                        }
 
if((strlen(strik))==0)
                        {
                        cout << "Была введена пустая строка!" << endl;
                        goto k;
                        }
if((strlen(strik))==prob){
                        cout << "В строке введены только пробелы!" << endl;
                        goto k;
                        }
if((strlen(strik))==tchn)
                        {
                            cout << "Строка должна заканчиваться на точку!" << endl;
                            goto k;
                        }
tochka:
if(strik[tch] == '.')
                    {
                        strik[tch+1] = '\0';
                        if(strik[0]=='.')
                                                {
                                                    cout << "Была введена только точка!" << endl;
                                                    goto k;
                                                }
                    }
 
                                                
                        
                        
    //system("cls");                    
    cout << "Введенная строка : " << endl;
                        cout << strik << endl;
    cout<<endl<<endl;
    
    
k:                      
    delete []strik;
cout << "Хотите продолжить? Да(Y или y), Нет(любое другое)"<< endl;
char ot;
cin>>ot;
 
if(ot == 'y' || ot == 'Y')
                            goto vv;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2016, 08:41
Ответы с готовыми решениями:

Записать в предложение самые короткие слова (первое если их несколько) в обратном порядке
Всем привет, нужна ваша помощь сейчас прохожу практику в коледже на паскале, сам пишу на с++, не...

Если слово начинается с нечётной позиции, то записать символы этого слова в обратном порядке
ID сообщение : дана строка состоящая из слов. Если слов начинает с нечётной позиции то записать...

Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение
помогите пожалуйста написать программу: &quot;Все буквы каждого слова в предложении записать в обратном...

Все буквы каждого слова в предложении записать в обратном порядке и распечатать предложения, что получилось
Все буквы каждого слова в предложении записать в обратном порядке и распечатать предложения, что...

3
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
07.11.2016, 09:11 2
MrsAsuna, так С или C++? Вы goto проходите чтоли?
0
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 5
11.11.2016, 03:31  [ТС] 3
Спустя несколько дней я его всё же закончил.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <stdio.h>
#include <iostream>
#include <cctype>
#include <string>
#include <cstring>
#include <conio.h>
using namespace std;
int main() {
    int max(0),maxd(0);
    setlocale(LC_ALL, "Russian");
vv:
d:
                        cout<<"Ââåäèòå ìàêñèìàëüíóþ äëèííó ââîäèìîé ñòðîêè(1-80)"<<endl;
                        cin>>maxd;
                        if ((maxd<=0)||(maxd>80))
                                        {
                                         cout<<"Íåêîðåêòíîå çíà÷åíèå!"<<endl;
goto d;
                                        }
                        //cin.ignore();
 
char *strik=new char[maxd];
char stroka[80];
char res[5][20];
int i(0),st(0),tch(0),tchn(0),prob(0);
int k(1),r(0);
    cin.ignore();
                        cout<<"Ââåäèòå ñòðîêó"<<endl;
                        gets(stroka);
                        stroka[maxd]='\0';
                        stroka[maxd-1]='.';
                        strcpy(strik,stroka);
 
for(i=0;i<(strlen(strik));i++)
                        {
                            if(strik[i] != '.')
                                                {
                                                    tchn++;
                                                }
                            if(strik[i] == '.')
                                                {
                                                    tch=i;
                                                    
                                                    goto tochka;
                                                    //strik[(strlen(strik)-1)]  
                                                }
                            if(strik[i] == ' ')
                                                {
                                                prob++; 
                                                }
                        }
 
if((strlen(strik))==0)
                        {
                            cout << "Áûëà ââåäåíà ïóñòàÿ ñòðîêà!" << endl;
                            k=0;
                        }
if((strlen(strik))==prob){
                                                        cout << "Â ñòðîêå ââåäåíû òîëüêî ïðîáåëû!" << endl;
                                                        k=0;
                                                    }
if((strlen(strik))==tchn)
                        {
                            cout << "Ñòðîêà äîëæíà çàêàí÷èâàòüñÿ íà òî÷êó!" << endl;
                            k=0;
                        }
tochka:
if(strik[tch] == '.')
                    {
                        strik[tch+1] = '\0';
                        if(strik[0]=='.')
                                                {
                                                    cout << "Áûëà ââåäåíà òîëüêî òî÷êà!" << endl;
                                                    k=0;
                                                }
                    }
if(prob==0)
            {
                cout<<"Â ñòðîêå òîëüêî îäíî ñëîâî!"<<endl;
                k=0;
            }
                                                
if(k==1)
        {
        
    system("cls");                  
    cout << "Ââåäåííàÿ ñòðîêà : "<< strik<< endl;
    cout<<endl<<endl;
    
int kol;    
char *slowa[maxd]={0};
char *p=strtok(strik," ."); 
i=0;
while(p!=NULL)
        {
        slowa[i++]=p;
        p=strtok(NULL," .");
        kol++;  
        }       
 
i=0;  
int dl(0);
        dl=strlen(slowa[0]);
    //for(i=1;i<p;i++)
    while(slowa[i]!=0)
                    {
                    if(strlen(slowa[i])>dl)
                                            {
                                            dl=strlen(slowa[i]);
                                            }
                    i++ ;
                    }
char res[80]={0};
//for(int r=0;r<kol;r++)
while(slowa[r]!=0)
            {
 
                if(strlen(slowa[r])==dl)
                                        {
                                            int j,i;
                                            char* result=strdup(slowa[r]);
                                            for(i=0, j=dl-1;i<j;i++, j--)
                                                                        {
                                                                        char tmp=result[i];
                                                                            result[i]=result[j];
                                                                            result[j]=tmp;
                                                                        }
                                            strcpy(slowa[r],result);
                                        }
        strcat(res,slowa[r]);
        strcat(res," ");    
        r++;
            }
            strcat(res,".");
cout<<"Ñòðîêà ïîñëå îáðàáîòêè: "<<res<<endl;
        }//êîíåö äåéñòâèé çàäàíè
                        
    delete []strik;
cout << "Õîòèòå ïðîäîëæèòü? Äà(Y èëè y), Íåò(ëþáîå äðóãîå)"<< endl;
char ot;
cin>>ot;
 
if(ot == 'y' || ot == 'Y')
                            goto vv;
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
11.11.2016, 14:54 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    auto maxLen = std::max_element(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(),
        [](const std::string &s1, const std::string &s2) { return s1.length() < s2.length(); })->length();
    ist.clear();
    ist.str(str);
    for (std::string word; ist >> word; std::cout << word << " ")
        if (word.length() == maxLen)
            std::swap(word.front(), word.back());
}
Добавлено через 3 минуты
C++98
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    size_t maxLen = 0;
    for (std::string word; ist >> word;)
        if (word.length() > maxLen)
            maxLen = word.length();
    ist.clear();
    ist.str(str);
    for (std::string word; ist >> word; std::cout << word << " ")
        if (word.length() == maxLen)
            std::swap(*word.begin(), *word.rbegin());
}
0
11.11.2016, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2016, 14:54
Помогаю со студенческими работами здесь

Обработка текстового файла. Переставить слова в каждом предложении в обратном порядке и записать их в новый файл
Здравствуйте, никак не получается написать здачу - суть такова: Дан файл с текстом, в котором одно...

Сколько букв останется на своих местах в данной строке, если ее символы записать в обратном порядке
Сколько букв останется на своих местах в данной строке, ес¬ли ее символы записать в обратном...

Строка: Сколько букв останется на своих местах в данной строке, если ее символы записать в обратном порядке
Как написать программу по данному условию?? &quot;Сколько букв останется на своих местах в данной...

В предложении символы самого длинного слова заменить символами «*»
В заданном предложении символы самого длинного слова заменить символами «*». Напечатать исходный и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru