Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Как научить программу понимать где слова?


Автор: Enya 18.4.2006, 09:37
Вот такая ситуация: нужен алгоритм на Си, чтобы программа понимала где слово.

Просто на экзамене было несколько задач с которыми не справились многие.
Например:
Задача №1
Файловый ввод текста. Програма у каждого слова первую букву делает заглавной. Так вот как сделать перебор текста, при встрече слова выполнить функцию toupper();
Задача №2
Файловый ввод текста. Программа выводит построчно в таком виде
Цитата
[номер сточки] Сама строка [Кол-во слов в строке]
 Номер строчки понятно ка сделать, а как посчитать кол-во слов в выводимой строке.

Поможите чем можите! 

Автор: adonin 18.4.2006, 09:56
Посчитай количество пробелов в строке. Количество слов=кол-во пробелов+1. При этом повторяющиеся пробелы не учитывай. 

Автор: Hose 18.4.2006, 10:02
а еще функции scanf fscanf читают до конца строки или до первого пробела(что раньше встретится). Это может помочь с чтением слов. 

Автор: Enya 18.4.2006, 10:04
adonin, за подсчёт спасибо. А вот как - сделать чтобы программа встречая слово делал действия, а потом продолжала поиск слова и т. д. 

Автор: adonin 18.4.2006, 10:26
Руками. Ищешь первый символ после пробела, изменяешь его, продолжаешь поиск пробелов пока не дойдёшь до конца строки. Всё это делаешь в цикле.  

Автор: sergejzr 18.4.2006, 12:35
Код

for(int i=0;i<strlen(stroka);i++)
{
  if(bukva[i]=' '||bukva[i]=='\t')
  {
    if(isalpha(bukva[i+1]))
    delaj_dejstvie();
 }
}


Пользуйтесь пожалуйста кнопкой "Код" 

Автор: sergejzr 18.4.2006, 12:35
Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена!  

Автор: sgrey 27.4.2006, 07:21
я бы сделал это через cin.get ()... если символ пробел - значит следующий символ будет первая будква в слове, её делаем заглавной считаем количество пробелов +1 = количество слов... примерно так  

Автор: MAKCim 27.4.2006, 07:40
Цитата

я бы сделал это через cin.get ()

Цитата

нужен алгоритм на Си
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)