Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Cheyser_09
0 / 0 / 0
Регистрация: 01.12.2017
Сообщений: 2
1

Обработка символьных строк

19.12.2017, 20:12. Просмотров 818. Ответов 1
Метки нет (Все метки)

Сформировать и вывести на экран текстовый файл содержащий только последовательности символов, которые содержатся внутри операторных скобок "{" - "}". Перевести в этих строках символы в их числовое представление и подсчитать их сумму.го

Задали нам задание ничего не объяснив. Прошу помощи!
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2017, 20:12
Ответы с готовыми решениями:

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

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

Обработка символьных данных
Составить программу, которая вводит строку символов, выполняет ее обработку (Удалить все знаки "+",...

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

Командная строка программы С. Динамические массивы. Обработка символьных и строковых данных
Задание: С клавиатуры вводятся четыре массива слов: - существительные в именительном падеже...

1
Геомеханик
807 / 610 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
20.12.2017, 17:47 2
Лучший ответ Сообщение было отмечено Cheyser_09 как решение

Решение

Как понял, так и сделал.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#define CB_MAX  256
char* str_to_int(char* s, int* num);
char* offset_end(char* p, int* sum, int c, int* dg);
void  output_text(FILE* _out, FILE* _in, char x, char y);
 
int main(void){
    FILE* fp = fopen("file.txt", "r");
    if(fp != NULL){
        output_text(stdout, fp, '{', '}');
        fclose(fp);
    }
    getchar();
    return 0;
}
 
//вывод содержимого
void output_text(FILE* _out, FILE* _in, char x, char y){
    char s[CB_MAX], *p, *i;
    int  sum, dg = 0, g = 0;
 
    while((p = fgets(s, CB_MAX, _in)) != NULL){
        
        if(g){
            i = offset_end(p, &sum, y, &dg);
            fprintf(_out, "%.*s", (int)(i - p), p);
 
            if(*i == y){
                if(dg)
                    fprintf(_out, " sum: %d", sum);
                fputc('\n', _out);
 
                p = i + 1;
                goto __next;
            }
 
        } else {
__next:
            for(sum = g = 0; *p; ){
                if(*p == x){
                    i = offset_end(++p, &sum, y, &dg);
                    fprintf(_out, "%.*s", (int)(i - p), p);
 
                    if(*i == y){
                        if(dg)
                            fprintf(_out, " sum: %d", sum);
                        fputc('\n', _out);
 
                        sum = g = 0;
                        p   = i + 1;
                    } else {
                        g = 1;
                        break;
                    }
                } else
                    ++p;
            }
        }
    }
}
 
//суммирование и выделение конца строки
char* offset_end(char* p, int* sum, int c, int* dg){
    int n, s = 0;
    *dg = 0;
    while(*p && (*p != c)){
        if(*p >= '0' && *p <= '9'){
            p   = str_to_int(p, &n);
            s  += n;
            *dg = 1;
        } else
            ++p;
    }
    *sum = s;
    return p;
}
 
//из строки в число
char* str_to_int(char* s, int* num){
    int n = 0;
    for(; *s >= '0' && *s <= '9'; ++s)
        n = n*10 + (*s - '0');
    *num = n;
    return s;
}
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2017, 17:47

Сумму двух символьных строк записать в третью
Задача звучит так: с клавиатуры ввести 2 символьные строки, в каждом из которых записано...

Лаба "Обработка символьных данных" на Си
Всем привет! Вот уже 2 день подряд пытаюсь сделать лабу. Ничего в голову не приходит. Дело в том,...

Составить функцию для обработки символьных строк и программу для проверки работоспособности функции
Кому не трудно, помогите Функция WordCmp ( s1 , s2 ) Назначение : сравнение строк ( с...


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

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

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