Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с решением задачи (строковые потоки)  (Прочитано 10626 раз)
0 Пользователей и 1 Гость смотрят эту тему.
toshik91
Гость
« : 12-04-2009 09:16 » 

Я студент, задали следущую задачу   Здесь была моя ладья... :

В начале исходного текста стоит заглавная буква русского алфавита с символом ":" (например,  А:) для поиска. Далее идет словарь русских слов через запятую пропиными буквами и с точкой после последнего слова (например, арбуз, арбат, бревно, береза, вода, герой.)
Длина текста - не более NL строк(например 3), длина слова - не более NW символов(например 5), длина строки - не более NS символов(например 15).
Найти слова в которых нет буквы (прописной) соответсвующей заданной (А).
В файле результатов должен быть исходный словарь, буква для поиска и список найденных слов ( с новой строки и порядковым номером ).

 Не понял Задача вызывает сложности с обработкой текста в файле в строки и определением операций.
Помогите, нужно очень срочно  Не надо
Записан
toshik91
Гость
« Ответ #1 : 12-04-2009 09:28 » 

UPD Посмотрел остальные темы
Увидел соообщения типа "Мы за тбя  решать не будем, давай свои соображения"
Поэтому хочу добавить то что я нарыл по учебнику и пытаюсь из этого сделать (там общий набросок, трудности с определением и записью слов, преобразованием буквы для поиска в прописную, а также записью в файл вывода)
!я долго провалялся в больнице с сотрясением мозга и пропустил много, поэтому решил к вам обратиться. Так я хотя бы смогу понять как все работает((
Заранее огромное человеческое спасибо.

Код:
// kursa_cifra_01_c++.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h" //
#include <iostream> //
#include <fstream> //
#include <sstream> // Для возможности использования двунаправленного строкового потока ostringstream.
#include <iomanip> //
#include <string> //
#include "CyrIOS.h" // По учебному пособию Т.А. Павловской,  стр 191, задача 5.2
using namespace std; //


int _tmain(int argc, _TCHAR* argv[])
{
ifstream myfile("info.txt", ios::in|ios::nocreate);
if (!myfile) { cout << "Ошибка открытия файла." << endl: return 1; }

int count = 0;
int count2 = 0;
string word;
ostringstream sentence;
string result;
string nds;
while(!myfile.eof()) {

char sym;
while(isLimit(sym = myfile.peek())) {
sentence << sym;
if (sym == '\n') break;
myfile.seekg(1, ios::cur)
}

myfile >> word;

sentence << word;
if ( word.at(count)
char last = word[word.size-1];
if ((last == ',') || (count2 == 1)) {

count++;
count2 = 0;

return 0;
}

Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 12-04-2009 10:42 » 

Увидел соообщения типа "Мы за тбя  решать не будем, давай свои соображения"
всё правильно сделал Ага

с файлами я через эти функции не работал, но а насчёт строк могу посоветовать написать всмопогательные функции

например
Код:
//выделение слова между запятыми, начиная с символа *pchBeg (и включая его)
const char* GetWordBetweenCommaz(const char* pchBeg,DWORD& dwdWordLenGot)
{
  dwdWordLenGot=0;

  const char* pWordEnd_plus1=strpbrk(pchBeg,",\0");
  if(!pWordEnd_plus1)return 0;

  dwdWordLenGot=pWordEnd_plus1-pchBeg;

  return pchBeg;
}

ну а для преобразования строчных в прописные есть функция
char* strupr(char* str);
и наоборот
char* strlwr(char* str);
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines