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

Отредактировать текст, удалив из него слова, которые уже встречались в предложении ранее

30.11.2016, 13:29. Просмотров 622. Ответов 2
Метки нет (Все метки)


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

Добавлено через 22 часа 50 минут
Написала только..Вводим строку и выводим её..дальше ступор
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <stdio.h>
#include <locale.h>
#include <string.h>
 
int main(int argc, char *argv[])
{
setlocale(LC_ALL, "Russian");
char str[256];
printf("Введите строку: "); gets_s(str);
puts(str);
_gettch();
return 0;
}
Добавлено через 6 минут
Есть код, но он нерабочий.. http://forum.codenet.ru/q16786/
как исправить? Помогите, пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2016, 13:29
Ответы с готовыми решениями:

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

Отредактировать текст, удалив из него слова, которые уже встречались в нем раньше.
Отредактировать текст, удалив из него слова, которые уже встречались в нем раньше.

Отредактировать текст, удалив из него слова, которые уже встречались в нем раньше.
Отредактировать текст, удалив из него слова, которые уже встречались в нем раньше.

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

2
1705 / 974 / 424
Регистрация: 12.05.2016
Сообщений: 2,445
30.11.2016, 16:45 2
Katerina101010, берем первое слово из строки, проверяем есть ли оно в массиве(нужен массив для слов), т.к. оно первое и массив пуст, добавляем слово в массив и выводим слово. Берем второе, смотрим есть ли оно в массиве, если нет, то добавляем в массив и выводим слово, если есть пропускаем. Берем третье слово... как-то так.
Хотя, если текст небольшой можно прям в этой же строке и смотреть..
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char buf[BUFSIZ];
    char buf_[BUFSIZ];
    while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf!='\n') {
        printf("Result string: ");
        strcpy(buf_, buf);
        for (char* ptr = strtok(buf, DELIM); ptr;  ptr = strtok(NULL, DELIM))
            if ((buf_- strstr(buf_, ptr)) == (buf - ptr)) printf("%s ", ptr);
        putchar('\n');
    }
    return 0;
}
Если очень большой текст, можно хеш использовать.
0
2 / 2 / 3
Регистрация: 31.05.2014
Сообщений: 23
30.11.2016, 19:50  [ТС] 3
DELIM не определен..

Добавлено через 5 минут
И функцию strtok нельзя использовать, нужно strtok_s а там другие аргументы передавать нужно

Добавлено через 6 минут
Со strtok разобралась

Проект -> Свойства -> Свойства конфигурации -> С / С++ -> Препроцессор -> Определения препроцессора -> и в эту строку добавляете "_CRT_SECURE_NO_WARNINGS;

Добавлено через 3 минуты
Немного подправила, спасибо большое
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
 
int main(void)
{
    //char* DELIM;
    char buf[BUFSIZ];
    char buf_[BUFSIZ];
    while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n') {
        printf("Result string: ");
        strcpy_s(buf_, buf);
        for (char* ptr = strtok(buf, " "); ptr; ptr = strtok(NULL, " "))
        if ((buf_ - strstr(buf_, ptr)) == (buf - ptr)) printf("%s ", ptr);
        putchar('\n');
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2016, 19:50

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

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

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

Отредактировать текст, удаляя те слова, которые уже встречались раньше
Отредактировать текст, удаляя те слова, которые уже встречались раньше.

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


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

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

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