0 / 0 / 1
Регистрация: 18.04.2015
Сообщений: 119
1

После каждого слова, в котором встречается сочетание "по" вставить символ ';'

02.11.2015, 16:26. Показов 2339. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
"После каждого слова, в котором встречается сочетание "по" вставить символ ';'"
Если кто-то захочет помочь, то прошу не стоит использовать указателей и вообще чего-то сложного, чего при изучении этой темы в универе не учат
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2015, 16:26
Ответы с готовыми решениями:

Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а"
Помогите с программой, начал делать, ерунда какая то выходит.... #include<iostream.h>...

После каждого знака препинания (".", ",", ";") вставить в строку пробел, если там его нет
Выполните задания с использованием библиотечного класса string. Даны строка S. Необходимо после...

После каждой буквы "о" в слове вставить сочетание "ля"
После каждой буквы "о" в слове вставить сочетание "ля"

Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел
Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует...

1
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
02.11.2015, 18:20 2
Лучший ответ Сообщение было отмечено Insider246 как решение

Решение

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
#include <iostream>
#include <fstream>
using namespace std;
 
void Error(const char* str){
    std::cout << str;
    system("PAUSE");
    exit(-1);
}
 
bool FindChar(char* strFind,char* buffer, int size){//size - размер buffer.Если cтрока str есть в строке buffer возвращает true, иначе false
    int index = 0;
    int len = strlen(strFind);
 
 
    for (int i = 0; i < size; i++){
        if (strFind[index] == buffer[i]){
                index++;
        }
        else{
            if (strFind[0] == buffer[i]){
                index = 1;
            }
            else{
                index = 0;
            }
        }
        if (index == len){
            return true;
        }
    }
    return false;
} 
 
int main(){
 
    ifstream in("in.txt"); //Открываем файл
    ofstream out("out.txt"); //Открываем файл
 
    if (!in.is_open()) //Если файл не открылся
        Error("Not open the file!!!\0"); //Пишем об ошибке и закрываем программу
 
    char tmpChar = 0; //Буфер символа
 
    int j = 0;  //Счетчик символов в буфере
    char word[50]; //Буфер для слова
 
    for (int i = 0;!in.eof(); i++){
 
        tmpChar = in.get(); //Берем символ из файла
 
 
        if (tmpChar == ' '){  //Конец слова
 
            if (j >= 2){ //Проверяем размер записанного слова
                if (FindChar("по\0", word, j)){ //Если в слове есть строка "по", 
                    out << ";";                     //то печатаем символ';'
                }
            }
            memset(word, 0, 50);//Очищаем буфер для слова.
            j = 0; //Обнуляем кол-во символов.
        }
        else{ // Если это слово
            word[j] = tmpChar; //записывем его в буфер
            j++; //Увеличиваем счетчик символов буфера
        }
 
        out << tmpChar; //Пишем символ в текстовый файл.
    }
 
    in.close(); //Закрываем файлы.
    out.close();
 
    system("PAUSE");
    return 0;
}
Как-то так. Ввод файл in.txt. Вывод файл out.txt

Добавлено через 6 минут
Если совсем без указателей, то так
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
#include <iostream>
#include <fstream>
using namespace std;
 
void Error(const char* str){
    std::cout << str;
    system("PAUSE");
    exit(-1);
}
 
 
int main(){
 
    ifstream in("in.txt"); //Открываем файл
    ofstream out("out.txt"); //Открываем файл
 
    if (!in.is_open()) //Если файл не открылся
        Error("Not open the file!!!\0"); //Пишем об ошибке и закрываем программу
 
    char tmpChar = 0; //Буфер символа
 
    int j = 0;  //Счетчик символов в буфере
    char word[50]; //Буфер для слова
 
    for (int i = 0;!in.eof(); i++){
 
        tmpChar = in.get(); //Берем символ из файла
 
 
        if (tmpChar == ' '){  //Конец слова
 
            
            if (j >= 2){ //Проверяем размер записанного слова
                char strFind[] = "по\0";
                int index = 0;
                int len = strlen(strFind);
 
                for (int i = 0; i < j; i++){
                    if (strFind[index] == word[i]){
                        index++;
                    }
                    else{
                        if (strFind[0] == word[i]){
                            index = 1;
                        }
                        else{
                            index = 0;
                        }
                    }
                    if (index == len){
                        out << ";";
                    }
                }
            }
 
 
            memset(word, 0, 50);//Очищаем буфер для слова.
            j = 0; //Обнуляем кол-во символов.
        }
        else{ // Если это слово
            word[j] = tmpChar; //записывем его в буфер
            j++; //Увеличиваем счетчик символов буфера
        }
 
        out << tmpChar; //Пишем символ в текстовый файл.
    }
 
    in.close(); //Закрываем файлы.
    out.close();
 
    system("PAUSE");
    return 0;
}
Только так сложнее разобраться
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 18:20
Помогаю со студенческими работами здесь

Создать список из целых чисел. После каждого элемента, равного "х" вставить элемент, равный "у"
Задача со стеком. Создать список из целых чисел. После каждого элемента,равного х вставить...

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

Сколько раз среди данных символов встречается символ "+" и символ "*"
Сколько раз среди данных символов встречается символ &quot;+&quot; и символ &quot;*&quot;

После последней буквы каждого слова вставить символ «-»
В задаче задается строка текста, состоящая из нескольких слов. Слова отделяются последовательностью...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru