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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2010, 17:57   #1
Настя93
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
По умолчанию Количество слов в строке

Помогите пожалуйста написать программу которая определяет количество слов в строке.
Настя93 вне форума Ответить с цитированием
Старый 25.10.2010, 18:00   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
k:=0;
while trim(s)<>'' do begin
s:=trim(s);
s:=s+' ';
inc(k);
delete(s,1,pos(' ',s));
end;
writeln(k);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 25.10.2010, 18:02   #3
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Код:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;

int main()
{
	string s = "Shla sasha po shose i sosala sushku";
	int countWords = 0;
	for(int i = 0; i< s.size();i++)
	{
		if(s[i]==' ')
		{
			countWords++;
		}
	}

	cout<<"V stroke  "<<countWords+1<<"  slov";
	_getch();
return 0;
}
Принцип работы, если программа находит пробел - она плюсует +1 к счетчику слов. В конце к полученному результату прибавляем еще единицу, т.к. первое слово она не учла
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 18:03   #4
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Oh shi:> Опередили

Зато решения на все случаи жизни, хотите - на Делфи, хотите - на с++
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 18:16   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

На паскале так(в случае, если в качестве разделителя юзаются .,:;!?)
Код:
Uses CRT;
Var
   S:String;
   N,I:Integer;
   IsWord:Boolean;
Begin
     Clrscr;
     Write('Enter S:');
     Readln(S);
     N:=0;
     IsWord:=False;
     For I:=1 To Length(S) Do
     Begin
          If S[I] in [' ','.',',',':',';','!','?'] Then
          IsWord:=False
          Else
          If not IsWord then begin Inc(N);IsWord:=True;end;
     End;
     Write('N = ',N);
     Readln;
End.
_-Re@l-_ вне форума Ответить с цитированием
Старый 27.10.2010, 19:28   #6
Настя93
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
Радость

Спасибо!!!!!!!!
Настя93 вне форума Ответить с цитированием
Старый 27.10.2010, 19:34   #7
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

а что если в строке есть пробелы? тогда надо искать первый непробельный символ. А что если в конце строки есть пробелы? тогда надо искать последний непробельный символ, и только потом уже вести учет слов, просто небольшая добавка в виде расчета двух переменных
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 24.02.2011, 19:47   #8
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Можно ещё так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  x: integer;
  i: byte;
begin
  str:=Edit1.Text;
if trim(str)<>'' then
begin
while length(trim(str))>0 do
begin
  i:=0;
for i:= Length(trim(str)) downto 1 do
if str[i] = ' ' then
  break;
if trim(str)<>'' then
  str:= copy(trim(str),1, i);
  inc(x);
end;
  Edit1.Text:=inttostr(x);
end
else
  Edit1.Text:=inttostr(x);
end;
При этом счетаются слова в строке независимо от количества пробелов между словами.
vmilyoshin вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество слов в тексте almareta Помощь студентам 3 01.04.2010 20:59
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
Количество слов в richedit blackstersl Общие вопросы Delphi 2 11.03.2009 15:10
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
Разделение 2-х слов в строке 856100 Общие вопросы Delphi 9 06.10.2008 20:41