Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 14:00   #1
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию поиск слов(C++)

Добрый день!
Пмогите пожалуста решить задачу:
Дан текстовый файл. Нати предложения, которые заканчиваются одинаковыми словами.

Код:
#include "stdafx.h"
#include "fstream"
#include <vector>
#include <string>
#using <mscorlib.dll>
using namespace std;
int _tmain(){
	ifstream ftext; // файловая переменная
	vector<string> s;
	char buf[80]; // массив для строк
	ftext.open("C:\\F.txt",ios::in); // открываю файл
while(!ftext.eof()){
	ftext.getline(buf, sizeof(buf));
	s.push_back(buf); // записываю строки в вектор
}}
Дальше не соображу.
Вопросы:
1)Как выделить из файла предложение?
2)Последнее слово?
VadEr вне форума Ответить с цитированием
Старый 07.05.2009, 14:15   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

1) последний символ предложения обычно "." или "!" или "?"
2) последнее слово = от последнего пробела до последнего символа предложения
counter вне форума Ответить с цитированием
Старый 07.05.2009, 14:16   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
1)Как выделить из файла предложение?
2)Последнее слово?
Это можно сделать, например, с помощью функции strtok (string.h)
В первом случае разделителем будет точка. Во втором - пробел, запятая..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 14:24   #4
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Поясните пожалуста, как использовать функцию strtok(string.h) (её синтаксис). Ана напрямую к файловой переменной обращается или через массив?
VadEr вне форума Ответить с цитированием
Старый 07.05.2009, 14:29   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

strtok работает со строками. То есть из файла их надо сначала прочитать.
Если файл небольшой, то можно сразу его загнать в буфер.
Если большой, то, наверное, лучше считывать по предложениям (до разделителя).

strtok используется примерно так:
Код:
char str[1000],*p;
gets(str);
p = strtok(str," ,"); // получаем слово. Разделители - пробел и запятая
while(p = strtok(NULL," ,") // получаем остальные слова
 { }
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 14:41   #6
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Что означает функция gets(str);?
VadEr вне форума Ответить с цитированием
Старый 07.05.2009, 14:42   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Что означает функция gets(str);?
Вы это можете посмотреть в любом справочнике, коих в интернете достаточно.
gets считывает строку.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 14:43   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Если получится — прикрепите экзешник, плиз! Хочу взглянуть на это чудо техники.

В условии не оговорено, что внутри предложений точек нет, так что всё непросто.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 07.05.2009, 14:49   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov
В условии не оговорено, что внутри предложений точек нет, так что всё непросто.
о_О А как внутри предложения может оказаться точка? ) Ведь тогда это будет уже два предложения..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 15:25   #10
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Это для наивного студента два, а препод возьми да и напиши:

— В вашем коде, уважаемый Mr.Smith, есть «косяки»?
— Но тов. профессор, у нас в Англии только в Темзе косяки!

Вот вам и 2 предложения с одинаковыми словами в конце. Я уж не буду напирать на английскую версию — где предложения могут оканчиваться кавычкой!

Цитата:
Сообщение от VadEr Посмотреть сообщение
Нати предложения, которые заканчиваются одинаковыми словами.
Вопросы:
1)Как выделить из файла предложение?
2)Последнее слово?
Может, дурацкая идея, а что если упростить условие? Иначе надо написать чуть ли не новый Word.

Последний раз редактировалось Sasha_Smirnov; 07.05.2009 в 19:48.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск слов в строке Neymexa Общие вопросы C/C++ 3 16.12.2008 18:33
Поиск одинаковых слов (Delphi 7) hooch Помощь студентам 4 27.11.2008 20:14
Поиск слов в тексте pleer Общие вопросы Delphi 5 23.09.2007 08:19