Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
medved89
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 3
#1

Удалить в каждой строке текстового файла последнее слово - C++

29.06.2011, 03:50. Просмотров 2696. Ответов 5
Метки нет (Все метки)

Выполнить обработку текстового файла. Определить кол-во предложений в исходном тексте.как реализовать ?Удалить в каждой строке последнее слово:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
#include <iostream>
 
using namespace std;
int main(){
   ifstream fin("input.txt");
      int p = -1;
   while (!fin.eof()){
      char c;
      fin.get(c);
      if (c == '.') p++;
      if (c == '!') p++;
      if (c == '?') p++;
   }
   cout << p << std::endl;
   system("pause");
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2011, 03:50     Удалить в каждой строке текстового файла последнее слово
Посмотрите здесь:

В каждой строке текстового файла поменять местами первое и последнее слова - C++
В каждой строке текстового файла поменять местами первое и последнее слова. Очень нужна ваша помощь!!! Вот есть пример того, что...

В каждой строке файла удалить среднее слово - C++
В каждой строке файла удалить среднее слово, результат записать в файл Например, в строке 7 слов - удалить 4 слово Если 6 слов, то...

Скопировать содержимое текстового файла, удалив в каждой строке слово номер N+1, если в слове N есть 4 - C++
Здравствуйте. Помогите, пожалуйста, в написании программы Скопировать содержимое текстового файла, удалив в каждой строке слово номер...

Удалить в каждой строке лишние пробелы; исходную информацию считать из текстового файла - C++
Пусть задано множество строк. Удалить в каждой строке лишние пробелы. Пробел считается лишним, если он 1) стоит в начале строки ...

Удалить последнее слово в строке - C++
Дана строка, состоящая из одного или нескольких слов, отделенных друг от друга одним пробелом. Найти и удалить последнее слово, являющееся...

Удалить в строке последнее слово и удвоить предпоследнее - C++
Доброго Времени Суток! Не могу решить 2 задачи со строками,возможно кто нибудь сможет помочь,вдруг у кого нибудь осталась задача.. Буду...

Сравнить с последнее слово с другими словами в строке и удалить повторяющиеся слова - C++
задание- сравнить с последнее слово с другими словами в строке и удалить повторяющиеся слова(последнее слово=слову в строке). вывести...

В каждой строке текста удалить второе слово - C++
Привет всем, у меня вопрос. Нужно ввести 20 строк из 128 символов (максимум, неважно какое кол-во символов), но в каждой строке нужно...

Получить слово, образованное первыми буквами каждой строки текстового файла - C++
Имеется текстовый файл, в каждой строке которого первые два символа являются буквами. Получить слово, образованное первыми буквами каждой...

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

Посчитать количество слов в каждой строке текстового файла - C++
пусть дан текстовый файл. создайте файл целых чисел, в котором каждой строке исходного файла соответствует в выходном файле число, равное...

Посчитать количество чисел в каждой строке текстового файла - C++
можете помочь с вопросом как посчитать количество чисел в каждой строке формата f файла txt (каждая строка не длиннее 255 символов) мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
29.06.2011, 03:57     Удалить в каждой строке текстового файла последнее слово #2
бей по токинам(strtok)...если токин последний то удаляй...я б так делал...
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.06.2011, 04:23     Удалить в каждой строке текстового файла последнее слово #3
Вот попробуй.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <ctype.h>
 
 
 
int   len_punct(const char* str) { 
       int len = 0;
       while( *str ) {
            if( *str == '.' || *str == '?' || *str == '!')
             len++;
          *str++;
      }
      return  len;
}
 
 
void   last_word_delete(char*  str, int size) {
       int  cnt = 0;
       for(int i = size - 1; i >= 0; i-- ) {
             if( isalpha( *((str) + i) ))
                     cnt++;
             else if(! isalpha( *((str) + i) )) {
              if(cnt > 1) {
                           *((str) + i) = '\0';
                                     break;
                      }
             }
        }
}
 
 
 
void  main(void) {
 
    int  count_pred = 0;
    FILE*  fp      = fopen("text.txt", "r" );
 
    char line[1024];
    while(! feof(fp)) { 
          line[0] = '\0';
          fgets(line, sizeof(line), fp);
          int  len = strlen(line);
          if(len > 0) {
               line[len - 1] = '\0';
               count_pred += len_punct(line);
               last_word_delete(line, len);
        puts(line);
          }
     }
    fclose(fp);
    printf("count pred: %d\n", count_pred);
 
   getchar();
}
medved89
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 3
29.06.2011, 04:45  [ТС]     Удалить в каждой строке текстового файла последнее слово #4
Цитата Сообщение от xAtom Посмотреть сообщение
int *len = strlen(line);
спс, но выбивает ошибку в 43 строке

Надо добавить в начале #include<cstring>


Тему клосс/ СПАСИБО xAtom, OLLEGATOR!
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
29.06.2011, 05:03     Удалить в каждой строке текстового файла последнее слово #5
int len = strlen(line); внимательнее
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
29.06.2011, 12:35     Удалить в каждой строке текстового файла последнее слово #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main() 
{
    char temp[100];
    char *p;
    std::ifstream ifs("1.txt");
 
    while (ifs.getline(temp,80)) {
        if (p=strrchr(temp,' ')) *p=0;
        puts(temp);
    }
 
 
    getchar();
    return 0;
}
без проверок на большое количество проверок. в стиле С.

Добавлено через 15 минут
пробелов*
Yandex
Объявления
29.06.2011, 12:35     Удалить в каждой строке текстового файла последнее слово
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru