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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2014, 16:19   #1
Arcasha
 
Регистрация: 28.03.2014
Сообщений: 5
По умолчанию Строки (Си)

Привет! Помогите плиз, горит зачет! Задание: Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами – запятая, за последним словом точка. Напечатать все различные слова, указав для каждого из них число его вхождений в последовательность.
Не могу написать вот эту часть: Напечатать все различные слова, указав для каждого из них число его вхождений в последовательность. Заранее благодарю!
Arcasha вне форума Ответить с цитированием
Старый 05.05.2014, 16:25   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Выкладывайте, что удалось сделать!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 05.05.2014 в 16:34.
Bugrimov вне форума Ответить с цитированием
Старый 05.05.2014, 17:09   #3
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
#include "stdio.h"
#include "stdlib.h"
#include "memory"
#include "string"



int main(int argc, char *argv[])
{        
    char _buf[1024] = {0,};
    char** _words = new char*[30];
    int _w_count[30] = {0,};
    int _w_size = 0;    
    gets(_buf);
    for(char* p = strtok(_buf, ","); p; p = strtok(NULL,","))
    {
        bool _exist = false;
        if(p[strlen(p) - 1] == '.')
            p[strlen(p) - 1] = 0;
        for(int i = 0; i < _w_size; i++)
        {
            if(!strcmp(p, _words[i]))
            {
                _w_count[i]++;
                _exist = true;
            }
        }
        if(!_exist)
        {
            _words[_w_size] = new char[strlen(p) + 1];
            memset(_words[_w_size], 0, strlen(p) + 1);
            strcpy(_words[_w_size], p);
            _w_count[_w_size++]++;
        }
    }
    for(int i = 0; i < _w_size; i++)
    {
        printf("%s : %d\n", _words[i], _w_count[i]);    
        delete [] _words[i];
    }
    delete [] _words;
    return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10