Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа со строками(С++).

41K
18 ноября 2008 года
dymych
6 / / 12.11.2008
есть прога
которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа анализирует содержимое этих файлов и убирает лишние пробелы между словами
Подскажите мне как подсчитать количество предложений во всех файлах и вывести на экран случайно выбранное предложение
помогите пожалуйста,больше не у кого спрашивать
Код:
#include <stdio.h>
# include <iostream>
# include <fstream>
using namespace std;

int main()
{
    int k=0;  //вводим переменную целого типа и присваиваем ей значение 0
    ifstream list("list.txt"); //открываем файл list.txt
    char buf[256];
        while (!list.eof()) //пока файл list.txt не прочитан до конца
   //(файл читаем построчно) выполняем действия
        {  list.getline(buf,sizeof(buf));
            if(buf[strlen(buf)-1]=='\n') //если в конце стоки последний символ \n…
            buf[strlen(buf)-1]='\0'; //меняем его на \0
         ifstream file(buf); //открываем файлы с именами указанными
     //в файле list.txt (каждая строка имя файла)
char letter[256];
                    while (!file.eof())//пока файл не прочитан до конца
                          //(файл читаем посимвольно) выполняем действия
            {  
                file.getline(letter,sizeof(letter));
int  i = 0;
int  neword = 1;
                //проходим все символы
                while (letter)
                    {
                     //пробел - разделитель слов, пока пробел не выводим
                        if (letter == ' ')
                         neword = 1;
                        //знак препинания - разделитель, выводим его
                            else
                            if ((letter == '.') || (letter == ',') || (letter == '!') ||
                                (letter == '?') || (letter == ':') || (letter == ';'))
                                {
                                    printf("%c", letter);
                                 neword = 1;
                                }
                             //новое слово, и это не первое слово –
        //выводим перед ним пробел
                                    else
                                    {
                                        if (neword && i)
                                        printf(" ");
                                        printf("%c", letter);
                                        neword = 0;
                                     }
                    i ++;
                    }
}
            file.close(); //закрываем файл
       
        }  
        list.close(); //закрываем файл list.txt
   
return 0;
}

[COLOR="Red"]Оформляй код по Правилам.модератор.[/COLOR]
366
19 ноября 2008 года
int
668 / / 30.03.2005
Считай по точкам. Сколько точек, столько же и предложений. Конец файла может быть вместо точки.
535
19 ноября 2008 года
Нездешний
537 / / 17.01.2008
Не только точек, но и восклицательных и вопросительных знаков. Плюс предусмотреть возможности типа ?!, !!!, ... и т.д.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог