Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Текстовый файл. Функции


Автор: jdvar 7.4.2009, 09:28
Дан текст. В каждой строке слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Проверить, являются ли слова в каждой строчке текста упорядоченными по алфавиту. Если нет, то упорядочить их, не делая различия между строчными и прописными буквами. У каждого слова первую букву заменить прописной, а остальные буквы сделать строчными. Исходный текст и полученные результаты должны быть в рзличных файлах. Решить задачу с помощью функции.

Собственно задание нужно сделать на борланде

Автор: mrbrooks 7.4.2009, 15:15
Цитата(jdvar @  7.4.2009,  09:28 Найти цитируемый пост)
Собственно задание нужно сделать на борланде 

Это вместо помогите пожалуйста?

Раз нужно - тогда делай. Выхода нет.

Автор: zim22 7.4.2009, 15:15
Цитата(jdvar @  7.4.2009,  09:28 Найти цитируемый пост)
Собственно задание нужно сделать на борланде

а почему не на visual c++ или code blocks?

Добавлено через 43 секунды
Цитата(mrbrooks @  7.4.2009,  15:15 Найти цитируемый пост)
Раз нужно - тогда делай. Выхода нет.

выход есть - поделиться с нами денюжкой

Автор: taiven 7.4.2009, 17:52
А исходная структура текста в выходном файле должна сохраниться(я имею в виду количество пробелов между словами и т.д.)?

Автор: jdvar 7.4.2009, 19:04
Цитата

Это вместо помогите пожалуйста?


задание требуется сделать в принципе.никто не говорил,что это я от вас требую.но,хорошо,попрошу - помогите пожалуйста

Цитата

а почему не на visual c++ или code blocks?


в университете имеется только борланд

Цитата

А исходная структура текста в выходном файле должна сохраниться(я имею в виду количество пробелов между словами и т.д.)?


нет.количество пробелов между словами в выходном не имеет значения.главное,чтобы они разделялись хотя бы одним.пожалуй единственное,что в обоих структурах текстов должно быть одинаково это количество строчек

Автор: taiven 7.4.2009, 19:47
вот, не проверял особо, но должно работать...
Код

#include <iostream>          
#include <fstream>    
#include <cstring>   

using namespace std;

void Lowercase(char *arr)
{
    int len = strlen(arr);
    for(int i = 0; i < len; i++) 
        tolower(arr[i]);
}

void BubbleSort(char (*arr)[256], int size)
{
    char temp[256] = {'\0'};
    for(int i = 1; i < size; ++i)
        for(int j = 0; j < size - i; ++j)
            if ( (strcmp(arr[j], arr[j+1]) > 0) )
            {
                strcpy(temp, arr[j]);
                strcpy(arr[j], arr[j+1]);
                strcpy(arr[j+1], temp);
            }
}
    

int main()
{    
    char words[256][256] = {'\0'};
    char word[256] = {'\0'};
    int count = 0;

    ifstream in("C:\\in.txt");
    ofstream out("C:\\out.txt");

    if(!in) 
    {
        cout << "Error\n";
        return 1;
    }

    in.unsetf(ios::skipws);

    while(!in.eof())
    {
        char *p;
        in.getline(word, 256);    

        p = strtok(word, " ");
        while(p != NULL)
        {
            strcpy(words[count++], p); 
            p = strtok(NULL, " ");
        }

        BubbleSort(words, count);

        for(int index = 0; index < count ; index++)
        {
            Lowercase(words[index]);
            words[index][0] = toupper(words[index][0]);
            out << words[index] << ' ';
            memset(words[index], '\0', 32);
        }
        out << '\n';
        count = 0;
    }

    in.close();
    out.close();

    return 0;    
}


Добавлено @ 19:56
если используешь Borland 3.1 или что-то типа того, то вместо
Код

#include <iostream>          
#include <fstream>    
#include <cstring>   

using namespace std;

надо написать
Код

#include <iostream.h>          
#include <fstream.h>    
#include <string.h>   

Автор: jdvar 7.4.2009, 20:10
спасибо большое.а можно было бы без использования потоков и string.h?

Автор: taiven 7.4.2009, 20:24
Цитата(jdvar @  7.4.2009,  19:10 Найти цитируемый пост)
спасибо большое.а можно было бы без использования потоков и string.h?

в смысле без потоков? и чем string.h не угодил? smile 

Автор: jdvar 7.4.2009, 20:30
скажем,банально не проходили.просто было бы странно подключать непройденные на данный момент библиотеки (и iostream.h,и fstream.h,и string.h).по идее весь листинг должен быть представлен с одним stdio.h.но если ответ на мой вопрос - "нет",то пойду разбираться)

Автор: zim22 7.4.2009, 20:34
Цитата(jdvar @  7.4.2009,  20:10 Найти цитируемый пост)
.а можно было бы без использования потоков и string.h?

это называется нахальство. вы сразу не могли уточнить с чем писать и без чего?

Автор: jdvar 7.4.2009, 22:30
Цитата

это называется нахальство. вы сразу не могли уточнить с чем писать и без чего?


приношу свои извинения,но я совершенно не хотел быть нахальным.я даже не знал о существовании таких библиотек до сегодняшнего дня

Автор: jhonyxakep 8.4.2009, 08:45
надо поискать их в Викпедии!

Автор: Anikmar 8.4.2009, 09:02
Цитата(zim22 @  7.4.2009,  15:15 Найти цитируемый пост)
выход есть - поделиться с нами денюжкой 

 smile  вошли во вкус?

Автор: zim22 8.4.2009, 12:34
Цитата(Anikmar @  8.4.2009,  09:02 Найти цитируемый пост)
вошли во вкус?

есть у кого учиться! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)