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

Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают - C++

Восстановить пароль Регистрация
 
DoubleCat
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 20
08.06.2013, 14:15     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #1
1.Проверьте, есть ли в слове приставка "при" или "пре".
2.Вставьте в слове после "кас" букву "а", если ее там нет.
3.Удалите из слова все буквы, совпадающие с последней буквой
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Denisqwwq
 Аватар для Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
08.06.2013, 15:22     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #2
1) Правда слово придётся вводить на англ. раскладке Ну а как определить, что это именно приставка, а не просто слово начинающиеся на "pri" или "pre" я вообще не представляю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int i=0;
    char s[256];
    while ((s[i]=getchar())!='\n') {
    i++;
    }
    if ((s[0]=='p' && s[1]=='r' && s[2]=='i') || (s[0]=='p' && s[1]=='r' && s[2]=='e'))
    {
    cout<<"yes";
    }
    else
    {
        cout<<"no";
    }
    cin.get();
    cin.get();
    return 0;
}
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
08.06.2013, 15:53     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #3
DoubleCat, откуда происходит ввод (чтение из файла/пользовательские данные) и о какой памяти идет речь (статическая, где размер задается жестко в коде/динамическая, где new)?
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
08.06.2013, 16:39     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #4
Цитата Сообщение от DoubleCat Посмотреть сообщение
1.Проверьте, есть ли в слове приставка "при" или "пре".
2.Вставьте в слове после "кас" букву "а", если ее там нет.
3.Удалите из слова все буквы, совпадающие с последней буквой
Заранее спасибо.
1)
C++
1
2
3
4
5
6
7
#include <iostream>
using std::cout;
 
void main(void){ 
    int i=0;char s[256];
    while ((s[i]=getchar())!='\n') i++;
    (s[0]=='p' && s[1]=='r' && ( s[2]=='i'|| s[2]=='e')) ? cout<<"yes": cout<<"no";  }
или
C++
1
2
3
4
5
6
7
#include <iostream>
using std::cout;
 
void main(void){ 
    int i=0;char s[256];
    while ((s[i]=getchar())!='\n') i++;
    cout<<((s[0]=='p' && s[1]=='r' && ( s[2]=='i'|| s[2]=='e')) ? "yes":"no");}
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
08.06.2013, 19:04     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #5
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 <cstring>
 
using namespace std;
 
int main()
{
    char input[255], *temp, *temp2;
    char lastChar;
 
    cout << "Enter the word: ";
    cin >> input; // если действительно лишь слово без пробелов
 
    /* Задание 1
    // если есть подстрока и она является началом исходной строки, т.е. приставкой */
 
    if (strstr(input, "pre") == input) cout << "Pre is here\n";
    if (strstr(input, "pri") == input) cout << "Pri is here\n";
 
    /* Задание 2 */
 
    temp=strstr(input, "kas");
    if (temp && temp[3]!='a')
    {
        temp+=2;
        temp2=&input[strlen(input)+1];
        while(temp2 != temp)
        {
            *temp2=*(temp2-1);
            temp2--;
        }
        *(temp+1)='a';
    }
 
    /* Задание 3 */
 
    lastChar=input[strlen(input)-1];
    while( temp=strchr(input, lastChar) )
    {
        if (!*(temp+1)) break; // закомментировать если последний символ тоже нужно удалять
        temp2=temp;
        while(*temp2)
        {
            *temp2=*(temp2+1);
            temp2++;
        }
    }
 
    cout << "Result: " << input;
 
    return 0;
}
Несколько пробных запусков у меня прошли успешно.
DoubleCat
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 20
09.06.2013, 17:26  [ТС]     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают #6
Спасибо огромное, выручили!
Yandex
Объявления
09.06.2013, 17:26     Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают
Ответ Создать тему
Опции темы

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