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

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

Войти
Регистрация
Восстановить пароль
 
Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
#1

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

09.12.2009, 13:39. Просмотров 582. Ответов 7
Метки нет (Все метки)

Имеется текстовый файл, в каждой строке которого первые два символа являются
буквами. Получить слово, образованное первыми буквами каждой строки;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2009, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить слово, образованное первыми буквами каждой строки текстового файла (C++):

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

Файлы. Получить слово, образованное k-ыми символами каждой строки - C++
Здравствуйте, ребята! Вот задание: Дан текстовый файл. Получить слово, образованное k-ыми символами каждой строки. У меня не получается...

Дано слово а. Получить слово b, образованное нечётными буквами слова а. - C++
8.1.2. Помогите, пожалуйста, решить задачу в С++. Дано слово а. Получить слово b, образованное нечётными буквами слова а.

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

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

Удалить в каждой строке текстового файла последнее слово - C++
Выполнить обработку текстового файла. Определить кол-во предложений в исходном тексте.как реализовать ?Удалить в каждой строке последнее...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 15:15 #2
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define FNAME "in.txt"    /* имя файла */
#define MAXLEN 4096
 
int main(void)
{
    char s[MAXLEN];
    char word[MAXLEN];
    FILE *fp;
    int i, nc;
 
    if( (fp = fopen(FNAME, "r")) == NULL) {
        perror("fopen");
        return 1;
    }
 
    i = 0;
    nc = 2;
    while(fgets(s, sizeof(s), fp) != NULL) {
        if(!isalpha(s[0]))
            continue;
        if(i >= MAXLEN - nc)    
            break;
        memcpy(word + i, s, nc);
        i += nc;
    }
    word[i + 1] = '\0';
    fclose(fp);
 
    printf("Слово: %s\n", word);
    return 0;
}
1
Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
09.12.2009, 17:20  [ТС] #3
Gravity, а если надо составить слово, образованное вторыми буквами каждой строки;
и нужна последовательность символов, образованную s-ми символами каждой строки.

Добавлено через 3 минуты
Gravity, программа составляет слово из всех букв которые есть в файле, а надо только из первых...
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 17:32 #4
Цитата Сообщение от Alinochka Посмотреть сообщение
программа составляет слово из всех букв которые есть в файле, а надо только из первых...
Да вобще-то из первых двух букв каждой строки... Что у тебя в файле?
Цитата Сообщение от Alinochka Посмотреть сообщение
а если надо составить слово, образованное вторыми буквами каждой строки;
и нужна последовательность символов, образованную s-ми символами каждой строки.
Значит должен появиться кто-то добрый и переделать весь пример выше.
0
Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
09.12.2009, 17:35  [ТС] #5
Ясно) ну за это спасибо)))
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 17:39 #6
Тебе надо просто изменить 'nc = 2' на 'nc = 1', тогда будет копироваться самая первая буква строки.
0
Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
09.12.2009, 19:21  [ТС] #7
а что бы образовать слово только из вторых букв, нельзя так же что нибудь заменить и все?)))
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 19:32 #8
Ну так например
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define FNAME "in.txt"    /* имя файла */
#define MAXLEN 4096
 
int main(void)
{
    char s[MAXLEN];
    char word[MAXLEN];
    FILE *fp;
    int i, nc, npos;
 
    if( (fp = fopen(FNAME, "r")) == NULL) {
        perror("fopen");
        return 1;
    }
 
    i = 0;
    nc = 1;   /* количество букв из строки для копирования */
    npos = 1; /* позиция буквы в строке, с которой копируем (отсчет с нуля) */
    while(fgets(s, sizeof(s), fp) != NULL) {
        if(!isalpha(s[1]))
            continue;
        if(i >= MAXLEN - nc)    
            break;
        memcpy(word + i, s + npos, nc);
        i += nc;
    }
    word[i + 1] = '\0';
    fclose(fp);
 
    printf("Слово: %s\n", word);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2009, 19:32
Привет! Вот еще темы с ответами:

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : &quot;В конец каждой строки текстового файла дописать количество символов этой строки&quot;. Получается только в начало, не знаю...

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

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

Для каждой строки файла удалить короткое слово - C++
Для каждой строки файла удалить короткое слово. Результат записать в файл. FILE *f1,*f2; f1=fopen(&quot;F1.txt&quot;,&quot;rt&quot;); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.12.2009, 19:32
Ответ Создать тему
Опции темы

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