Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Visual C++] Удалить из текста одинаковые слова 
V
    Опции темы
Jenn
Дата 2.2.2007, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



Дано 10 символьных строк, состоящих из слов, разделенных пробелами. 
Удалить из текста одинаковые слова. smile 


PM MAIL   Вверх
Friackazoid
Дата 2.2.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 23.2.2006

Репутация: 1
Всего: 3



А что непонятного считываешь слова в массив потом ищешь в нем одинаковые слова. Еси таких же слов нет то выводишь слово в файл.
Вот примерный код
Код

#define n 200
 FILE *ifp = fopen("input.txt","r");
 char *slova[n]; //сам подумай о количестве слов в файле
 char stroka[n]; 
 int k=0;
 for (int i=0; i<9; i++)
 {
    fgets(stroka,n,ifp);
    slova[k]=strtok(stroka,".,!? ");
    while (slova[k])
    {
       k++;
       slova[k] = strtok(NULL, ".,!? ");
    }
 }
 fclose (ifp);
 FILE ofp = fopen ("output.txt","w");
bool flag;
  for(int i=0; i<k; i++)
  {
    flag = false;
    for(int j=0; j<k; j++)
     if(strcmp(slova[i],slova[k]))
     {
       flag = true;
       break;
     }
    if(!flag)
       fputs(slova[k]);
  }


Пишу экспромтом так что извини если что не так.

Гыг  smile  только сейчас заметила что чертов Експлорер защел под акком моего друга. Предыдущий пост приадлежит мне. Модератор поставьте там пожалуста (с)Friackazoid smile  smile  

Это сообщение отредактировал(а) Alexeis - 2.2.2007, 11:57
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
Alexeis
Дата 2.2.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459




M
Alexeis
Модератор: на форуме запрещено создавать дубликаты тем. вторую тему удаляю.


Это сообщение отредактировал(а) Alexeis - 2.2.2007, 12:36


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Jenn
Дата 2.2.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



Может ещё кто-нибудь решить эту задачку? Или исправить ошибки в решении FriackazoidFriackazoid вроде все правильно решил, а выдается куча ошибок. Не пойму в чем дело?


PM MAIL   Вверх
Jenn
Дата 2.2.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



Хотя почему в этой строке
Цитата(Friackazoid @  2.2.2007,  11:52 Найти цитируемый пост)
 fputs(slova[k]);

всего 1 параметр, ведь должно быть 2. Это 1-ая ошибка. Как ее исправить подскажите? А 2-ая ошибка в этой строке FILE ofp = fopen ("output.txt","w"). Почему не пойму. Помогите исправить? smile 
Надеюсь в остальном по смыслу задача правильная. Проверьте кто может и помогите! Пожалуйста!!!


PM MAIL   Вверх
Dov
Дата 3.2.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



1. fputs(slova[k], ofp);
2. FILE ofp -> FILE* ofp


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
sergejzr
Дата 3.2.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Этот код и повторения подсчитает smile
(Подправил оригинал отсюда. )
Это не совсем вижуал, но мозгами поработать ведь никогда не помешает.
Код

#include <string>
#include <iostream>
#include <fstream>
#include <map>
int main()
{
    std::map<std::string,int> count;
    std::string word;
    
    
    std::ifstream fileIn( "test.txt" );
  
    while ( !fileIn.eof() )
    {
        fileIn>>word;
        count[word] += 1;
    }
    fileIn.close();

    for (std::map<std::string,int>::iterator p = count.begin(); p != count.end(); p++)
        std::cout<<p->first<<'\t'<<p->second<<'\n';
        int i;
            std::cin>>i;
}


Если компилер будет ругаться, пробовать так:
Код

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <map>

using namespace std;

int main()
{
    map<string,int> count;
    string word;
    
    
    ifstream fileIn( "test.txt" );
  
    while ( !fileIn.eof() )
    {
        fileIn>>word;
        count[word] += 1;
    }
    fileIn.close();

    for (map<std::string,int>::iterator p = count.begin(); p != count.end(); p++)
        cout<<p->first<<'\t'<<p->second<<'\n';
        int i;
        cin>>i;
}


В следующий раз пользуйтесь поиском пожалуйста, чтобы не дублировать вопросы smile



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.