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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
#1

работа с файлами - C++

27.05.2010, 20:56. Просмотров 828. Ответов 14
Метки нет (Все метки)

1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и знаками препинания. Удалить из этого файла все фразы, содержащие слово «мама».

как сравнивать слово мама??

Добавлено через 2 часа 19 минут
ап ап ап
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 20:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос работа с файлами (C++):

Работа с файлами - C++
Всем добрый день. Помогите кто-нибудь с этим заданием: о каждом из студентов известны фамилия и информация о том, имеет ли студент зачет по...

Работа с файлами - C++
Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в...

работа с файлами - C++
Дан текстовый файл и строка s. Если самая длинная строка файла не совпадает со строкой s, то строку s дописать в конец файла. Помогите...

Работа с файлами - C++
1) Преобразовать строку, заменяя каждую цифру соответствующим ей числом символов нижнего подчеркивания. Например: «3 слона» -> «_ _ _слона»...

Си, работа с файлами - C++
помогите пожалуйста написать прогамму на Си, вот само задание: подготовьте текстовый файл, который состоит из строк, содержащих...

работа с файлами - C++
Текст берётся из файла. Ка ксделать используя библиотеку fstream знаю, но надо сделать без неё то есть простые fread, fwrite и т.д.)....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
orienteer
7 / 6 / 0
Регистрация: 23.06.2009
Сообщений: 41
27.05.2010, 21:12 #2
пробелы и знаки есть такая проверка (ispunct(ch)) && (isspace(ch))
можешь читать текст по словам и сравнить слова, в std::string норм сравнивает вроде
можешь воспользоваться string::substr для поиска подстроки или string::replace
http://www.cplusplus.com/reference/s...string/substr/
читаешь до точки, через substr смотришь есть ли вхождение, если нет - копируешь в другой файл , потом обратно скопируешь
0
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 21:14  [ТС] #3
очень полезно, спасибо
но , можно функции на С ?
0
orienteer
7 / 6 / 0
Регистрация: 23.06.2009
Сообщений: 41
27.05.2010, 21:20 #4
на С не знаю, поищи в поиске "поиск подстроки в строке"
0
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 21:31  [ТС] #5
я поискал, но там страшные вещи которых я не знаю ...
объясните алгоритм кто нибудь, и чтобы попроще
0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.05.2010, 21:35 #6
На Си есть функция strstr.
1
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 22:00  [ТС] #7
а как удалять слова??
0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.05.2010, 22:04 #8
Открываешь новый файл, записываешь строки из первого за исключением не нужных, сохраняешь новый файл, удаляешь старый, переименовываешь новый.
1
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 22:05  [ТС] #9
ладно, как удалять старый файл? и как переименовывать
0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.05.2010, 22:23 #10
Удаление
C
1
int remove(const char *filename);
Переименовывание
C
1
int rename(const char *oldname, const char *newname);
Обе функции в stdio.
2
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 23:26  [ТС] #11
респект

Добавлено через 1 час 2 минуты
еще банальный вопрос, как сосчитать количество символов в файле??
вот например
fgets(str1,...,fp); я не знаю сколько их там, как сосчитать??
1
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.05.2010, 23:31 #12
Размер файла в байтах можно узнать такой контсрукцией
C
1
2
3
4
long size;
fseek(fp, 0, SEEK_END);
size = ftell(fp);
fseek(fp, 0, SEEK_SET);
1
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 201
27.05.2010, 23:32  [ТС] #13
значит я могу
fgets(str1,...,fp); вместо многоточии написать size?
1
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.05.2010, 23:39 #14
Если str1 позволяет, то да.

Добавлено через 2 минуты
Но сдесь лучше fread использовать, т.к если в файле есть символ перевода строки, то fgets будет плевать на size, он будет считывать до новой строки.
1
Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 19:24 #15
Ну чё ты решил эту задачку? Можешь скинуть рабочий код? просто у меня типа такой, я вообще понятия не имею как её осуществить, у меня удалить из этого файла фразы, содержащие предлоги «с», «на», «под».
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2011, 19:24
Привет! Вот еще темы с ответами:

Работа с файлами - C++
Хотелось бы разобраться как работать с файлами. Придумал программу самую простенькую, хочу загнать ее в файл. #include <stdio.h> ...

Работа с файлами - C++
#include<iostream> using namespace std; void main() { FILE *f,*g; int a,kol=0; fopen_s(&f,"D:\\1.txt","r"); ...

Работа с файлами - C++
Программа полностью рабочая. Кроме одного момента. #include <conio.h> #include <stdio.h> #include <iostream> #include <clocale>...

работа с файлами - C++
в программе не работает удаление... что делать?? #include "stdafx.h" #include <string.h> #include <conio.h> #include <stdlib.h> ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.02.2011, 19:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru