138 / 138 / 39
Регистрация: 26.02.2011
Сообщений: 545
1

Напечатать все слова, которые встречаются в последовательности по одному разу

13.03.2012, 10:58. Показов 1397. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем дана строка в файле,задача Напечатать все слова, которые встречаются в последовательности по одному разу.

У меня щас удаляет повторно входящие слова,тоесть если в файле
это содержимое
Код
qwert,qw,qwert,qaz,qwert,qaz,qwe.
она выдает
Код
qwert,qw,qaz,qwe.
Это не то ,мне нужно чтобы выдало
Код
qw,qwe.
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
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    FILE *f1,*f2;//2 файла
    char nameIn[20];//имя файла1(длина)
    char nameOut[20];//имя файла2(длина)
    char source[256];
    char dest[256]={'\0'};
    char *buf;
    char* s;
    int  size;
    printf("Vvedite imy faila: ");   //спрашиваешь имя
        scanf("%s",nameIn);       //считываешь имя
        f1 = fopen(nameIn,"r");//открываем файл 1
        while (f1 == NULL)//цикл от ошибок,если не сущевствует файла1
        {
              printf("\tError!\n");
              printf("Vvedite imy faila: ");   //спрашиваешь имя
              scanf("%s",nameIn);       //считываешь имя
              f1 = fopen(nameIn,"r");//открытие файла1
        }
    size = filelength(fileno(f1));//получаем размер файла
    int readsize = fread(source,sizeof(char),sizeof(char)*size,f1);//читают строку из файла по символам.в переменную readsize записывается размер
    buf = strtok(source,",.");
    while (buf!='\0')
    {
        s=strstr(dest, buf);//Функция strstr() возвращает указатель на первое вхождение подстроки, адресуемой параметром str2, в строку, адресуемую параметром str1. Если совпадение не обнаружено, возвращается нулевой указатель.
        if(!s || *(s+strlen(buf))!=',')
        {
            strcat(dest, buf);//присоединяет к строке str1 копию строки str2
            strcat(dest, ",");//присоединяет к строке str1 копию строки str2
        }
        buf = strtok(0,",.");
    }
    dest[strlen(dest)-1]='.';
    printf("Vvedite imy vihodnogo faila: ");   //спрашиваешь имя
        scanf("%s",nameOut);       //считываешь имя
        f2 = fopen(nameOut,"w");//открытие файла2
        printf("\n");
        printf("\tRezultat izmeneniy: \n");
    printf("%s", dest);
    fprintf(f2,"%s",dest);
        fclose(f2);//закрытие файла2
        fclose(f1);//закрытие файла1
getch() ;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2012, 10:58
Ответы с готовыми решениями:

Напечатать все слова, которые встречаются в последовательности по одному разу
Сам попробовал написать код,но везде одни ошибки. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...

Напечатать все слова, которые встречаются в строке только по одному разу.
Вот такая вот задача: Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5...

Напечатать все слова, которые встречаются в последовательности более одного раза
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных русских...

Напечатать все слова предложения которые встречаются ровно один раз
Дано предложение, состоящее из слов, разделенных пробелами. Напечатать все слова, которые...

2
139 / 133 / 57
Регистрация: 31.01.2012
Сообщений: 435
13.03.2012, 11:05 2
а зачем вы удаляете повторения? если по условию память не ограничена то заведите массив целых чисел на 40 элементов(исходя из того что консольная строка содержит 80 позиций), обнулите его. затем прочтите строку, разбейте на слова, посчитайте сколько слов. и в двойном цикле пробегитесь по массиву слов. если слово будет повторяться то увеличить на единицу значение в соответствующих элементах целочисленного массива. и на вывод подать те элементы из массива слов у которых соответствующие элементы из целочисленного массива равны 0. не лучшее решение, но решение этой задачи

Не по теме:

имхо для школьной лабы сгодится

0
138 / 138 / 39
Регистрация: 26.02.2011
Сообщений: 545
13.03.2012, 12:14  [ТС] 3
А в коде сам цикл?
0
13.03.2012, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2012, 12:14
Помогаю со студенческими работами здесь

Напечатать все слова, которые встречаются в нем ровно один раз
Здравствуйте. Помогите, пожалуйста, с задачей. Условие: Дано предложение, состоящее из слов,...

Получить все числа, которые входят в последовательность по одному разу
ввести с клавиатуры целое число n , целые числа a0,,,,,,,,an-1 (в последовательности могут быть...

Вывести на экран (по одному разу) все последовательности длиной k, образованные из чисел
Помогите написать програму!! Определить и вывести на экран (по одному разу) все последовательности...

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


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

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

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