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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2011, 10:03   #1
just_dake
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 39
Вопрос Операции со строками.

Всем доброго времени суток! Мне лишь необходимы ваши подсказки, либо алгоритм решения следующего задания:
Дан текст. Найти сколько раз в каждой строке встречается заданное слово;
сколько слов в строке содержит гласных букв больше, чем согласных.

Заранее спасибо! Всем откликнувшимся!
just_dake вне форума Ответить с цитированием
Старый 16.09.2011, 10:09   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну, например, можно проходить всю строку в цикле от одного разделителя слов (пробел, знаки препинания, можно сделать список (в Паскале set of ...) или наоборот смотреть только на буквы) до другого и смотреть какое это слово.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 16.09.2011 в 10:14.
Alex11223 вне форума Ответить с цитированием
Старый 16.09.2011, 10:13   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Несмотря на общность, выбор алгоритма может сильно зависеть от языка программирования и того, что Вам разрешено в нем использовать. Это частный случай и необходимо больше информации для наиболее оптимального выбора.
Кроме того, требуются уточнения по самой задачи - что является словом? То что отделено пробелом? Является ли разделителем слов только пробел? То есть запятая в Вашем случае является частью слова или это также разделитель слов? Несмотря на простоту и кажущуюся очевидность сказать точней невозможно и зависит от задания (или от того, кто Вам его дал).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 16.09.2011, 10:19   #4
just_dake
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 39
По умолчанию

Utkin, ах да, извиняюсь, необходимо написать в чистом СИ (так как его только и знаю). Разделителями слова, являются все знаки препинания которые могут разделять слова.
just_dake вне форума Ответить с цитированием
Старый 16.09.2011, 10:21   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

2 Utkin:
Вопрос о конкретных разделителях, мне кажется, не очень важен. Так или иначе, он решается. А вот сам способ выделения слова сильно зависит от языка. Если это Pascal - все вручную, если PHP - считай, все сделано уже..

Добавлено:
- извиняюсь, опоздал..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 16.09.2011, 10:24   #6
just_dake
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 39
По умолчанию

Допустим результат работы первой части работы будет таким:
в 1-ой строке заданное слово встречается н-раз,
во 2-ой н-раз,
и так далее.
just_dake вне форума Ответить с цитированием
Старый 16.09.2011, 11:37   #7
just_dake
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 39
По умолчанию

Это всего лишь поиск заданного слова в строке, в целом:

Код:
#include <string.h>
#include <stdio.h> 
#define SIZE 100                     

int main()
{
    char  s[SIZE];                  
    char  substr[SIZE];        
    int   n = 0;                 
    char* temp = s;                  
    
    puts("Vvedite stroku: \n");     
    gets(s);                        
    puts("\nVvedite slovo: \n"); 
    gets(substr);             
   
  
    while((temp = strstr(temp, substr)) != NULL) 
    {
                                    
        n++;                        
        temp++;                      
                                     
    }
    printf("\nEto slovo vstrechaetsya %d raz(a)!", n);
    getchar();
    return 0;
}
А хотелось бы так, чтобы слово искалось в каждой строке. Есть идеи?
just_dake вне форума Ответить с цитированием
Старый 16.09.2011, 11:55   #8
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от just_dake Посмотреть сообщение
А хотелось бы так, чтобы слово искалось в каждой строке. Есть идеи?
Как насчет органидовать массив строк? ))
Твоя программа ищет ВКЛЮЧЕНИЯ, а не слова. То есть в предложении:
Коля взял кол и колокольчик
- твой код найдет 4 слова "кол". А на самом деле оно там одно.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 16.09.2011, 12:06   #9
just_dake
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 39
По умолчанию

Да я это знаю=), но наш препод не смотрит на исходник проги), важен лишь результат!
И что там насчет массива строк?
just_dake вне форума Ответить с цитированием
Старый 16.09.2011, 12:41   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Сначала распихиваешь строки в массив и дальнейшие действия выполняются в цикле для каждой строки. Это чтобы соответствовать требованиям из поста #6. Я бы пошел еще дальше и на каждую строку еще бы завел массив слов. Тогда твоя задача стала бы совсем простой.
1. Разбиваете текст на массив строк
2. Разбиваете каждую строку на массив слов
Дальше искать сколько раз встречалось слово в строке станет вообще легко (опять же простейший цикл и условие со сравнением слов).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 16.09.2011 в 12:43.
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции со строками ArniLand Общие вопросы C/C++ 1 06.04.2010 21:49
Операции со строками с помощью классов Ueshua Фриланс 3 20.12.2009 01:37
Операции над строками Маринка777 Общие вопросы .NET 3 29.11.2009 22:28
Операции со строками( я на экзамене) Stelix Помощь студентам 13 12.02.2009 16:23