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

Удаление слова из строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программирование циклов с неизвестным заранее числом повторений http://www.cyberforum.ru/cpp-beginners/thread424109.html
вот еще лабораторная, как её делать ума не приложу, и одногруппники тоже сделать не могут. если кто сделает, пожалуйста добавьте алгоритмы, алгоритмы тоже нужны. Выкладывайте задания в теме. Не...
C++ разбить квадратную матрицу на 4 части подскажите, как разбить квадратную матрицу размерностью n на 4 матрицы с размерностью n/2 http://www.cyberforum.ru/cpp-beginners/thread424104.html
Описать класс для работы с целочисленной матрицей произвольного размера C++
Составить класс для работы с целочисленной матрицей произвольного размера, который задается в конструкторе,где данная матрица создается динамически. Включить саму матрицу во внутреннюю часть класса....
Спецификация файла. WTF? C++
Здравствуйте. Что такое спецификация файла (в контексте данной задачи)? В Google ничего понятного не нашел. Заранее спасибо.
C++ Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа, Выв http://www.cyberforum.ru/cpp-beginners/thread424087.html
Здравствуйте! Если кто-нибудь мог бы помочь в решении только той части где касается написания функции о поиске самого высокого спортсмена из 10 созданных структур.(if r.rost>r.rost) я просто не знаю...
C++ Программирование циклов с параметром. Одномерные массивы ужас, помогите решить лабораторную, завтра экзамен, а у меня не сделано, я вообще не понимаю как это делать! подробнее

Показать сообщение отдельно
KSTU
9 / 10 / 3
Регистрация: 25.04.2011
Сообщений: 47

Удаление слова из строки - C++

07.01.2012, 21:25. Просмотров 3163. Ответов 9
Метки (Все метки)

Задание:
Необходимо обработать текстовый файл. В первой строке файла указано
общее число строк. Выделить память под массив указателей на строки,
ввести текст построчно, динамически выделяя память для хранения каждой
строки и записывая указатель в массив. Вывести на экран исходный текст.
Выполнить один из вариантов обработки текста.

Вариант:
Удалить все вхождения заданного слова из текста.
Почти все сделал, а со строкой не получается... И слово не удаляет и режет потом строку неправильно. Помогите найти ошибку, пожалуйста:

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
#include <iostream>
#include <malloc.h>
#include <conio.h>
#include <string.h>
#define MAX_LEN 81
 
using namespace std;
 
void main ()
{
    setlocale(LC_ALL, "rus");
 
    FILE *f;
    char str1[MAX_LEN] = "file.txt", **str2, slovo[MAX_LEN];
 
    if ((f=fopen(str1,"r")) == NULL)
    { 
        cout << "Файл file.txt не найден.";
        _getch();
        return;
    }
 
    fgets(str1,MAX_LEN,f);
    int n = atoi(str1);
    cout << "Общее количество строк " << n << endl;
    str2 = (char **) malloc(n*MAX_LEN);
 
    cout << "\nИсходный текст:\n";
    for (int i=0; i<n; i++)
    {
        str2[i] = (char *) malloc(MAX_LEN);
        fgets(str2[i],MAX_LEN,f);
        cout << str2[i];
    }
 
    cout << "\n\nВведите слово, которое хотите удалить из текста: ";
    cin >> slovo;
 
    cout << "\nРезультат:\n";
    for (int i=0, k=0, x = -1, cut = 0; i<n; i++)
    {
        for (int j=0; j<MAX_LEN; j++)
        {
            if (str2[i][j]==slovo[k])
            {
                if (k==0) 
                    x = j;
                if (k==strlen(slovo)-1)
                {
                    cut++;
                    for (int y=x-1; y<j; y++)
                        str2[i][y] = str2[i][y+1];
                }
                k++;
            }
            else
            {
                k = 0;
                x = -1;
            }
        }
        for (int j=0; j<=strlen(str2[i])-strlen(slovo)*cut; j++)
            cout << str2[i][j];
        cout << "\n";
    }
 
    _getch();
    free(str2);
    fclose(f);
}
Файл:
5
There are SLOVO many big and small SLOVO libraries everywhere in our country.
They have millions of books in SLOVO different languages.
You can find there SLOVO SLOVO the oldest and the newest books.
Every school has a library.
Pupils come to the library SLOVO to take books on different subjects.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru