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

Строка: Разработать функцию, определяющую, встречается ли заданное слово в строке.

12.02.2018, 16:09. Просмотров 537. Ответов 7
Метки нет (Все метки)


Здравствуйте, мне нужно сделать программу исключительно для Visual Studio13
Задание:Разработать функцию, определяющую, встречается ли заданное слово в строке. Если в строке встречается заданное слово, удалить его, иначе удалить последнее слово строки. Строка вводится с терминала..
Заранее благодарен за ответ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2018, 16:09
Ответы с готовыми решениями:

Строка: Определить, сколько раз в строке встречается заданное слово
Определить, сколько раз в строке встречается заданное слово.

Составьте программу, определяющую, сколько раз в тексте встречается заданное слово
Составьте программу, определяющую, сколько раз в тексте встречается заданное слово.

Дана строка S и слово W. Определить, сколько раз в строке встречается это слово
У меня задание: Дана строка S и слово W. Определить сколько раз в строке встречается это слово. ...

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

7
174 / 138 / 105
Регистрация: 14.04.2016
Сообщений: 735
12.02.2018, 16:49 2
Цитата Сообщение от Алексей79547 Посмотреть сообщение
мне нужно сделать программу исключительно для Visual Studio13
Пишем программы для IDE... Это неплохо.
0
1742 / 1335 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
12.02.2018, 16:50 3
Код ТС'а
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
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
char * remove_substring(char * str, const char * sub) {
    char * head = strstr(str, sub);
 
    if (head) {
        char * tail = head + strlen(sub);
        memmove(head, tail, strlen(tail) + 1);
    }
    _getch();
    return str;
}
 
typedef char str_t[256];
#define get_str(s) ( scanf_s("%255[^\n]%*c", (s)) == 1 )
 
int main(void) {
    str_t str, sub;
 
    while (printf("String: ") && get_str(str) && printf("Substring: ") && get_str(sub))
        printf("Result: %s\n", remove_substring(str, sub));
    _getch();
    return 0;
}
0
822 / 625 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
12.02.2018, 17:13 4
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define isdelim(c) (isspace((c)) || ispunct((c)))
#define W_MAX      32
#define S_MAX      128
size_t remove_word(char* s, const char* w);
char*  remove_word_end(char* s);
 
int main(void){
    char s[S_MAX], w[W_MAX];
 
    printf("Enter str: ");
    fgets(s, S_MAX, stdin);
 
    printf("Enter word: ");
    scanf("%31[^\n]", w);
 
    if(!remove_word(s, w))
        remove_word_end(s);
 
    puts(s);
 
    fflush(stdin);
    getchar();
    return 0;
}
 
//удаление указанного слова
size_t remove_word(char* s, const char* w){
    size_t n, m;
    char*  p, *t = s;
    if((s = strstr(s, w)) == NULL)
        return 0;
 
    m = strlen(w);
    for(n = 0, p = s; *s; *s = *p){
        if((*p == *w) && (p == t || isdelim(*(p - 1)))){
            
            if(!strncmp(p, w, m) && (!*(p + m) || isdelim(*(p + m)))){
                p += m;
                ++n;
                continue;
            }
        }
        ++s, ++p;
    }
    return n;
}
 
//удаление последнего слова
char* remove_word_end(char* s){
    char*  w = NULL;
    size_t i = 0, m = 0;
    char*  t = s;
    do {
        if(*s && !isdelim(*s))
            ++i;
        else if(i > 0){
            w = s - i;
            m = i;
            i = 0;
        }
    } while(*s++ != '\0');
 
    if(w != NULL)
        strcpy(w, w + m);
    return t;
}
0
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 32
12.02.2018, 17:23  [ТС] 5
Ругается на strcpy(w, w + m);
0
2753 / 1700 / 352
Регистрация: 09.09.2017
Сообщений: 7,161
12.02.2018, 17:54 6
Алексей79547, Как именно ругается? Скомпилировался код Геомеханик'а без проблем. Может традиционные косяки msvs?
Попробуйте добавить перед всеми инклюдами #define _CRT_SECURE_NO_WARNINGS
0
174 / 138 / 105
Регистрация: 14.04.2016
Сообщений: 735
12.02.2018, 18:23 7
COKPOWEHEU, зачем писать подробности? Тут на форуме же лучшие в мире телепаты! Правда вы - телепат, который купил себе "корочку".
0
COKPOWEHEU
13.02.2018, 09:48     Строка: Разработать функцию, определяющую, встречается ли заданное слово в строке.
  #8

Не по теме:

Цитата Сообщение от SlavaSokolov Посмотреть сообщение
Правда вы - телепат, который купил себе "корочку".
Но-но! Не надо меня обвинять в телепатии, просто libastral.so наконец починили... а может и нет, если ТС ответит узнаем наверняка

0
13.02.2018, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2018, 09:48
Привет! Вот еще темы с ответами:

Сколько раз в строке встречается заданное слово
Здравствуйте, помогите пожалуйста с задачей Написать программу на языке программирования для...

Определить, сколько раз в строке встречается заданное слово.
Определить, сколько раз в строке встречается заданное слово.

Определить, сколько раз в строке встречается заданное слово
Определить, сколько раз в строке встречается заданное слово

Определить, сколько раз в строке встречается заданное слово
Использовать в задаче два класса строк: String и StringBuilder. Само задание: Составить программу,...


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

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

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