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

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

20.11.2016, 21:06. Просмотров 280. Ответов 0
Метки нет (Все метки)

Задача такая: открыть существующий текстовый файл с любым кодом на С, отредактировать таким образом : 1) все = заменить на == и 2) вывести все циклы (for, while, if). Если с первой частью задания программа справляется, то ни один цикл не выводит. Как можно дополнить/исправить код?
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
#include <stdio.h>
#include <string.h>
#define n 256
char fileName[n];
FILE* inputFile;
int change (char line[n]);
int cycleChange (char cycle[n][n]);
 
int main()
{
    gets(fileName);
    inputFile = fopen(fileName, "r");
    if (!fileName)
    {
        printf("An error ocured while reading file!\n");
        return 0;
    }
    int i=0, k = 0, cycleline=0, q; 
    char line[n]; //ïîòî÷Г*ГЁГ© ðÿäîê
    char word[n];
    char cycle[n][n]; //ñòðîêГ* äëÿ öèêëó
    while (fgets(line, n, inputFile))
    {
        q = change (line);      
             
   } 
        printf("\n");
    for (i = 0; i < cycleline; i++)
    {
        printf("%i: %s", i + 1, cycle[cycleline]);
    }
    
}
 
int change (char line[n])
{
    //îãîëîøåГ*Г*Гї çì³Г*Г*ГЁГµ
    int i=0, k = 0, w, cycleline=0; 
    size_t l = strlen(line);
    char word[n]; //ïîòî÷Г*ГҐ ñëîâî
    char cycle[n][n]; //ñòðîêГ* äëÿ öèêëó
    for (i = 0; i < l; i++)
    {
        while (line[i] != ' ' && line[i] != '\t' && i < l)
            {
                if (line[i] == '=') printf("==");
                else printf("%c", line[i]);
                
                word[k] = line[i]; 
                k++;
                i++;        
            }
            w = cycleChange(cycle);
            k = 0;
            memset(word, 0, sizeof(word));
            printf("%c", line[i]);  
    }
    return(i);
}
 
int cycleChange (char cycle[n][n])
{
 
 
    char word[n];
    int cycleline=0;
    char line[n];
    if (strcmp(word, "for") == 0 || strcmp(word, "while") == 0 || strcmp(word, "if") == 0) 
            {
            strcpy( cycle[cycleline], line ); 
            cycleline++;
            }   
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2016, 21:06
Ответы с готовыми решениями:

Освоение методики работы с символьными строками
Определить минимальную длину слова; выдать на печать все слова начинающиеся с...

Работа со строками
Дана последовательность слов, каждое слово не более 8 символов, заканчивается...

Работа со строками
Помогите с программой. Не могу запустить элементарную вещь. Есть команда char...

Работа со строками
Дан текст 1)Подчитать количество слов начинающихся с большой буквы....

Работа со строками
Подсчитать количество вхождений слова «мама» в строку и вывести номера первых...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2016, 21:06

Работа со строками в Си!
Ввести с клавиатуры символьную строку длиной не более 80 символов,...

Работа со строками и подстрокой в C
Программа, которая запрашивает 3 строки: 1 базовую, 2 - что мы ищем а базовой,...

Задача на алгоритмы. Работа со строками
Всем доброго времени суток! Передо мной стоит достаточно нетривиальная задача....


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

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

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