Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2015, 12:45   #1
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию Найти все уникальные слова. Написать комментарии к коду - C (СИ)

Есть готовый код к задаче:
Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5
строчных латинских букв. Между соседними словами стоит запятая, за
последним словом - точка. Напечатать все слова, которые встречаются в строке
только по одному разу.
_______________
Помогите разобраться в коде, не хочу тупо сдать лабу, хочу понять код, можно просто по добавлять комментарии к коду, буду очень благодарен
Код:
#include <stdio.h>
#include <string.h>
 
#define SIZE 256
#define WORDS 30
#define DELIMS ",. "
 
int main(void)
{
    char str[SIZE] = "", *ptr = NULL, *word[WORDS] = { NULL };
    size_t counter = 0, i, j, flag;
 
    if (scanf("%255[^\n]", str) == 1 && fgetc(stdin) == '\n')
    {
    for (
            ptr = strtok(str, DELIMS);
            ptr != NULL && counter < WORDS;
            ++counter, ptr = strtok(NULL, DELIMS)
        )
    {
        word[counter] = ptr;
    }
 
    for (i = 0; i < counter; ++i)
    {
        flag = 0;
        for (j = 0; j < counter; ++j)
        {
        if (i != j && strcmp(word[i], word[j]) == 0)
            {
            flag = 1;
            break;
            }
        }
 
        if (flag == 0)
            printf("%s\n", word[i]);
    }
    }
 
    return 0;
}

Последний раз редактировалось Stilet; 15.11.2015 в 15:12.
Max00766 вне форума Ответить с цитированием
Старый 16.11.2015, 09:44   #2
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Актуально, поднимаю
Max00766 вне форума Ответить с цитированием
Старый 16.11.2015, 10:43   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

а что вам в коде не понятно?
p51x вне форума Ответить с цитированием
Старый 16.11.2015, 15:35   #4
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
а что вам в коде не понятно?
Заголовочные файли и константы понятно, а что дальше происходит точно не могу понять, комментарии к коду очень бы помогли
Max00766 вне форума Ответить с цитированием
Старый 17.11.2015, 10:40   #5
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Очень актуально
Max00766 вне форума Ответить с цитированием
Старый 18.11.2015, 17:16   #6
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Уже практически разобрался, обьясните, пожалуйста, что означают строки:
Код:
(scanf("%255[^\n]", str) == 1 && fgetc(stdin) == '\n')
Код:
for (i = 0; i < counter; ++i)
    {
        flag = 0;
        for (j = 0; j < counter; ++j)
        {
        if (i != j && strcmp(word[i], word[j]) == 0)
            {
            flag = 1;
Max00766 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать Комментарии к коду C# Faust36 Windows Forms 19 13.02.2015 13:23
Java. Найти в тексте слова, заканчивающиеся на заданную букву. Помогите, написать комментарии к программе lenulichkal Помощь студентам 1 05.12.2014 08:36
Написать комментарии к коду Delphi WwEVGENwW Помощь студентам 0 18.06.2012 14:27
Прошу написать комментарии к коду Larkin. Помощь студентам 2 17.06.2009 15:15
Написать комментарии к коду. Delphi. Дарюха Помощь студентам 1 21.11.2007 16:05