Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
ol4ik
22 / 21 / 11
Регистрация: 08.04.2010
Сообщений: 90
#1

Перепишите в новый файл все строки, начинающиеся с заданного слова

01.12.2010, 09:08. Просмотров 627. Ответов 2
Метки нет (Все метки)

Помогите,пожалуйста,с задачами:
1. Перепишите в новый файл все строки, начинающиеся с заданного слова.
2. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой - оставшиеся. Если в строке меньше, чем k слов, то во втором файле соответствующая строка должна быть пустой.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 09:08
Ответы с готовыми решениями:

Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в другой новый файл
11. Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в...

Исключить все слова предложения, начинающиеся с заданного префикса
Дано предложение. Исключить все слова, начинающиеся с префикса «наи».

Обработка строк. Найти все слова, начинающиеся с заданного символа.
Добрый день! Я к вам снова с вопросом... Задача: Заданная строка состоит из...

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

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

2
easybudda
Модератор
Эксперт CЭксперт С++
10029 / 5953 / 1486
Регистрация: 25.07.2009
Сообщений: 11,251
01.12.2010, 10:20 #2
1.
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
55
56
57
58
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
int starts_from_word(const char * s, const char * w){
    int len;
    return ( strstr(s, w) == s && ( ispunct(*(s + (len = strlen(w)))) || isspace(*(s + len)) ) );
}
 
#define INPUT_NAME "in.txt"
#define OUTPUT_NAME "out.txt"
 
int main(void){
    FILE * fin, * fout;
    char buf[BUFSIZ], wrd[BUFSIZ];
    
    printf("First word: ");
    if ( scanf("%s", wrd) != 1 ){
        fprintf(stderr, "Wrong input!\n");
        exit(1);
    }
    
    if ( ( fin = fopen(INPUT_NAME, "r") ) == NULL ){
        fprintf(stderr, "Can't open input file!\n");
        exit(1);
    }
    if ( ( fout = fopen(OUTPUT_NAME, "w") ) == NULL ){
        fprintf(stderr, "Can't open output file!\n");
        fclose(fin);
        exit(1);
    }
    
    while ( fgets(buf, BUFSIZ, fin) ){
        if ( starts_from_word(buf, wrd) ){
            if ( fputs(buf, fout) == EOF ){
                fprintf(stderr, "Can't write to output file!\n");
                if ( fclose(fin) )
                    perror("fclose");
                if ( fclose(fout) )
                    perror("fclose");
                exit(1);
            }
        }
    }
    if ( ferror(fin) ){
        fprintf(stderr, "Can't read from input file!\n");
        if ( fclose(fin) )
            perror("fclose");
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    
    printf("Done.\n");
    
    exit( fclose(fin) | fclose(fout) );
}
1
ol4ik
22 / 21 / 11
Регистрация: 08.04.2010
Сообщений: 90
02.12.2010, 21:14  [ТС] #3
Лучший ответ Сообщение было отмечено ol4ik как решение

Решение

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

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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
int main()
{   FILE *ex1,*ex2,*ex3;
    ex1=fopen("C://ex1.txt","r");
    ex2=fopen("C://ex2.txt","w");
    ex3=fopen("C://ex3.txt","w");
    int t=0,i;
    char s[256];
    cout<<"vvedite kol-vo slov ";
    cin>>t;
    if ((ex1=fopen("C://ex1.txt","r"))==0)
      cout<<"error";
    else
    {
    while (!feof(ex1))
    {unsigned int i;
     int n=0;
        fgets(s, 100, ex1);
        if (s[0]!=' ') n=1;
        for(i=0; i<=strlen(s); i++)
        {   if((s[i] == ' ')&&(s[i+1]!= ' ')) n++;
            if((s[i]!= ' ')&&(s[i+1] == ' ')) n++;
            if(n<=t)
            {  fputc(s[i], ex2);
            }
            else
                fputc(s[i], ex3);
        }
        if(n<= t)
          fputc('\n', ex2); 
          else
          fputc('\n', ex3);
    }}
    fclose(ex1);
    fclose(ex2);
    fclose(ex3);
    getch();
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2010, 21:14

Удалить из строки все слова, начинающиеся с цифры
Дана строка символов, состоящая из слов, слова разделены между собой...

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

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


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

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

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