0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 3
1

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

29.06.2011, 03:50. Показов 4685. Ответов 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;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2011, 03:50
Ответы с готовыми решениями:

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

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

В каждой строке исходного файла поменять местами первое и последнее слово, и записать в выходной файл
Написать программу, выполняющую чтение текстового файла “input.in” и выполняющую его преобразование...

Прочитать строки из файла и поменять местами первое и последнее слово в каждой строке, записать в тот же файл
Это программа поменяет местами первое и последнее слово в строке. Но не могу понять что означает...

5
Linux-оид
119 / 68 / 9
Регистрация: 15.02.2011
Сообщений: 374
29.06.2011, 03:57 2
бей по токинам(strtok)...если токин последний то удаляй...я б так делал...
1
933 / 758 / 299
Регистрация: 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();
}
1
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 3
29.06.2011, 04:45  [ТС] 4
Цитата Сообщение от xAtom Посмотреть сообщение
int *len = strlen(line);
спс, но выбивает ошибку в 43 строке

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


Тему клосс/ СПАСИБО xAtom, OLLEGATOR!
0
Linux-оид
119 / 68 / 9
Регистрация: 15.02.2011
Сообщений: 374
29.06.2011, 05:03 5
int len = strlen(line); внимательнее
0
593 / 531 / 76
Регистрация: 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 минут
пробелов*
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2011, 12:35
Помогаю со студенческими работами здесь

Скопировать содержимое текстового файла, удалив в каждой строке слово номер N
Здравствуйте! Помогите понять задание... Задание: Работа с файлами. Обработку символьной...

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

удалить все четырехбуквенные слова в каждой строке текстового файла
Выполнить обработку текста из внешнего текстового файла, созданного в редакторе: удалить в...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru