Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 15
1

Исправить код программы, форматирующей текст

26.04.2016, 19:10. Просмотров 321. Ответов 0
Метки нет (Все метки)

Программа читает данные с файла,заносит в массив и форматирует неправильный ввод( неправильное положение табуляций,лишние пробелы и тд).

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
86
87
88
89
90
91
92
93
94
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 1000
int space(char *a)
{
    int i = 0;
    for (; (a[i] == '\t') || (a[i] == ' '); i++)
    {
        if (a[i] == ' ')
        {
            a[i] = '\t';
        }
    }
    return i;
}
void sdv_l(char *a, int sdvig)
{
    int j = 0;
    for (j = 0; a[j] != '\0'; j++)
    {
        a[j] = a[j + sdvig];
    }
}
void sdv_r(char *a, int sdvig)
{
    int j = 0;
    for (j = strlen(a); j >= 0; j--)
    {
        a[j + sdvig] = a[j];
    }
    for (j = 0; j != sdvig; j++)
        a[j] = '\t';
 
}
int main()
{
    char *word;
    int kol_vo = 0;
    int sdvig = 0;
    char *ch;
    int opn = 0;
    int i = 0;
    char **a;
    a = new char *[SIZE];
    for (i = 0; i < SIZE; i++)
    {
        a[i] = new char[SIZE];
    }
    FILE *f;
    f = fopen("laba.txt", "rt");
    if (f == NULL) {
        printf("Error: laba.txt not found");
        return 0;
    }
    i = 0;
    while (!feof(f))
        fgets(a[i++], SIZE, f);
    kol_vo = i;
    printf("\n");
 
 
 
    i = 0;
    for (; i != kol_vo; i++) {
        if (ch = strchr(a[i], '}')) {
            opn--;
        }
        int shift = opn - space(a[i]);
        if (shift > 0)
            sdv_r(a[i], shift);
        else
            sdv_l(a[i], -shift);
        if (ch = strchr(a[i], '{')) {
            opn++;
        }
        printf("%s", a[i]);
    }
 
    if (ch != NULL) {
        printf("fig scobk %c\n", *ch);
    }
    for (word = strtok(a[i], " \t("); word != NULL; word = strtok(NULL, " \t(")) {
        if (strcmp(word, "for") == 0) {   //указатель на слово
            printf("for - %s\n", word);
        }
 
        if (strcmp(word, "if") == 0) {
            printf("if - %s\n", word);
        }
    }
    fclose(f);
    return 0;
}
Проблема в выводе этого кода(так же можно любой другой код)
C
1
2
3
4
5
6
7
8
int i = 0;
int g = 0;
    int k = 0; 
int flag = 0;
int t = 0;
    char str[200] = { 0 };
    char a[20] = { 0 };
char b[20] = { 0 };
Программа расположит все верно, но начиная со строки с char выведет на табуляцию меньше.
Так как проверка идет по фиг. скобкам,то я считаю ,что проблема там,но не могу понять ,как исправить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2016, 19:10
Ответы с готовыми решениями:

Текст программы для решения неравенства (консоль). Исправить код
Добрый вечер, друзья. Задание было таким: Написать программу , которая решала бы неравенство. Текст...

Как исправить ошибку: формат теста исправить нельзя, только текст программы
class AmericanDate: def __init__(self, y, m, d): self.get_year = str(y) ...

Исправить текст программы.
Мужики помогите исправить,В пограмме о DVD фильмах там о Программе убрать автора есть все исходники...

3D текст на форме: исправить код
на сайте нашел программу для 3D текста, но у меня пишет ошибку, помогите решить:) заранее...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2016, 19:10

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

Не выводит текст на экран. Исправить код
Основной класс as файл package display{ import flash.display.*; import flash.text.TextField;...

Исправить код программы.
С помощью рекурсивной функции вычислить значение квадратного корня с заданой точностью. Вот что у...

Исправить код программы
помогите пожалуйста исправить код class Program { static void Main(string args) ...

Исправить код программы
Привет, помогите, пожалуйста. Есть код программы, что нужно включить/добавить, чтобы она работала...


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

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

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