0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 2
1

Ввести строку и слово, удалить все вхождения слова и вывести строку

22.10.2015, 17:38. Показов 1735. Ответов 2
Метки нет (Все метки)

Нужно написать программу только со стандартной библиотекой <stdio.h>
Помогите, пожалуйста :3
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2015, 17:38
Ответы с готовыми решениями:

Ввести строку и слово, удалить все вхождения слова и вывести строку
Написал код. Вот условие: &quot;Ввести строку и слово, удалить все вхождения слова и вывести строку.&quot; ...

Ввести строку и слово, удалить все вхождения слова и вывести строку
Доброго времени суток всем ! написал лр2 (Ввести строку и слово, удалить все вхождения слова и...

Ввести строку и слово, удалить все вхождения слова и вывести строку
помогите с лабой! Добавлено через 22 секунды через &lt;stdio.h&gt;

Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из исходной строки
Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из...

2
...
1804 / 1268 / 935
Регистрация: 12.02.2013
Сообщений: 2,063
23.10.2015, 05:42 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Ввод данных, я думаю, сделаете сами:
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
#include <stdio.h>
 
//-----------------------------------------------------------------------------
int isAlnum(int ch) {
    return ((('a' <= ch) && (ch <= 'z'))
            || (('A' <= ch) && (ch <= 'Z'))
            || (('0' <= ch) && (ch <= '9')));
}
//-----------------------------------------------------------------------------
int getWord(char* str, char** begin, char** end) {
    for (; *str && !isAlnum(*str); ++str) { ; }
    *begin = str;
 
    for (; *str && isAlnum(*str); ++str) { ; }
    *end = str;
 
    return (*end - *begin);
}
//-----------------------------------------------------------------------------
void strSet(char* str, char ch, unsigned size) {
    while (size--) {
        *str++ = ch;
    }
}
//-----------------------------------------------------------------------------
int strCmp(const char* str1, const char* str2, int size) {
    while (size && *str1 && *str2 && (*str1++ == *str2++)) {
        size--;
    }
    return (size == 0);
}
//-----------------------------------------------------------------------------
int strLen(const char* str) {
    const char* p;
    for (p = str; *p; ++p) { ; }
    return (p - str);
}
//-----------------------------------------------------------------------------
char* strChrRemove(char str[], char ch) {
    int offs = 0;
    char* p;
    for (p = str; *p; ++p) {
        if (*p == ch) {
            offs++;
        }
        else {
            *(p - offs) = *p;
        }
    }
    *(p - offs) = 0;
    return str;
}
//-----------------------------------------------------------------------------
char* wordRemove(char text[], const char word[]) {
    const char REPLACED_CHAR = 1;
    char* str = text, * begin, * end;
    int len, lenWord = strLen(word);
 
    while ((len = getWord(str, &begin, &end))) {
        if ((len == lenWord) && strCmp(begin, word, len)) {
            strSet(begin, REPLACED_CHAR, len);
        }
        str = end;
    }
 
    return strChrRemove(text, REPLACED_CHAR);
}
//-----------------------------------------------------------------------------
 
int main() {
    char text[] = "this is program delete word 'program'.";
    char word[] = "program";
 
    printf("%s\n", wordRemove(text, word));
 
    return 0;
}
Результат выполнения
2
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 2
26.10.2015, 06:01  [ТС] 3
Большое спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2015, 06:01
Помогаю со студенческими работами здесь

Вывести строку, в которой все вхождения первого слова заменены на второе слово
Ввести строку и два слова. Вывести строку, в которой все вхождения первого слова заменены на...

Программа должна предложить ввести строку и подстроку, и вывести все вхождения подстроки в строку
Прошла лекция на данную тему, я прослушав понял - что я ничего не понял :) Вообщем дали такое...

Ввести строку и два слова, заменить все вхождения первого слова на второе
Возможно ли создание такой программы: Ввести строку и два слова, заменить все вхождения первого...

Ввести строку, ввести слово. Вывести из строки только те слова, в которых есть хоть одна буква из введённого слова
Здравствуйте, товарищи программисты. Я не смогла смириться с поражением и это снова привело меня к...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru