Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 26.11.2011
Сообщений: 33
1

Поиск и вывод слов начинающихся на 'l'

26.11.2011, 13:52. Просмотров 641. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{int i,j;
char s[255],s1[255];
cin.getline(s,255);
for(i=0;i<255;i++)
{
if (s[i]=='l')
{j=i;
while (s[i]!=' ')
{s1[i]=s[i];
i++;
}cout<<s1<<endl;
i=j;
}
}
 
getch();
}
как сделать чтобы и после пробела обрабатывались слова? в частном случае, например, loja laja leja выводит все три, а в других случаях нет

Добавлено через 1 час 1 минуту
ну помогите же =\
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2011, 13:52
Ответы с готовыми решениями:

Поиск слов в файле, начинающихся с
Необходимо: прочесть текст в файле, вывести все слова, начинающиеся с некоторой буквы. В данном...

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

Вывод слов начинающихся и оканчивающихся на гласные буквы
Если с ручным вводом строки понятно, то как потом по отдельности выводить каждые слова такого типа?

Вывод на экран слов, начинающихся с гласных букв
Программа должна считывать английский текст из файла и выводить на экран слова, начинающиеся с...

3
Заблокирован
26.11.2011, 14:22 2
mister pOO,

Я думаю, ваша программа должна включать две задачи. Первая - это пропуск пробелов. Вторая - это пропуск слова, то есть не пробеов. Это может выглядеть так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int i = 0;
while ( s[i] != '\0' )
{
   // Пропуск пробелов
   while ( s[i] == ' ' ) i++;
   // Выделение слова
   if ( s[i] == 'l' )
   {
      int j = 0;
      while ( ( s[i] != ' ' ) && ( s[i] != '\0' ) ) s1[j++] = s[i++]; 
      s1[j] = '\0';
      std::cout << s1 << std::endl;
   }
   else
   {
      while ( ( s[i] != '\0' ) && ( s[i] != ' ' ) ) i++;
   }
}
Это примерный алгоритм. Его можно улучшить, введя функции IsSpace, IsEol

Например

C++
1
2
3
4
5
6
7
8
9
inline bool IsSpace( char c )
{
   return ( c == ' ' );
}
 
inline bool IsEol( char c )
{
   return ( c == '\0' );
}
Тогда предыдущий код будет выглядеть следующим образом

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int i = 0;
while ( !IsEol( s[i] ) )
{
   // Пропуск пробелов
   while ( IsSpace( s[i] ) ) i++;
   // Выделение слова
   if ( s[i] == 'l' )
   {
      int j = 0;
      while ( !IsSpace( s[i] ) && !IsEol( s[i] ) ) s1[j++] = s[i++]; 
      s1[j] = '\0';
      std::cout << s1 << std::endl;
   }
   else
   {
      while ( !IsSpace( s[i] ) && !IsEol( s[i] ) ) i++;
   }
}
0
1 / 1 / 1
Регистрация: 26.11.2011
Сообщений: 33
26.11.2011, 16:16  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{int i,j;
char s[255],s1[255];
cin.getline(s,255);
 
for(i=0;i<strlen(s);i++)
{
if (s[i]=='l')
{j=0;//переход в начало строки
while (s[i]!=' ')
{s1[j]=s[i];//получаем слово от буквы l до пробела
i++;
j++;
 
}cout<<s1<<endl;//выводим в цикле полученное слово, затем в те же элементы будет записано новое слово и снова выведется в цикле
 
}
}
 
getch();
}
решено.
0
Заблокирован
26.11.2011, 16:33 4
Цитата Сообщение от mister pOO Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{int i,j;
char s[255],s1[255];
cin.getline(s,255);
 
for(i=0;i<strlen(s);i++)
{
if (s[i]=='l')
{j=0;//переход в начало строки
while (s[i]!=' ')
{s1[j]=s[i];//получаем слово от буквы l до пробела
i++;
j++;
 
}cout<<s1<<endl;//выводим в цикле полученное слово, затем в те же элементы будет записано новое слово и снова выведется в цикле
 
}
}
 
getch();
}
решено.
Нет, у вас не решено!.Ваша программа работает просто некорректно! Возьмите для примера слово типа "abclef"
Так что используйте мой код и скажите мне спасибо!
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2011, 16:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Поиск количества слов начинающихся и заканчивающихся на заданный символ
.Программа считывает заданное кол-во символов из файла и затем ищет количество слов начинающихся на...

Чтение текстового файла и вывод слов начинающихся на указанную букву
Здравствуйте! Помогите пожалуйста с задачей: Разработать программу, которая читает текстовой файл...

Дана последовательность слов. Найти кол-во слов начинающихся с d и кончающихся буквой w
Кто может, помогите, пожалуйста. Использование указателей при работе со строками С++ Дана...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.