Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ задачи в C++: Циклы. Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread392157.html
Задачи нужно решить на Microsoft Visual C++! Циклы. 1.Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа. 2.Дано натуральное k. Напечатать k-ю цифру последовательности 149162536, в которой выписаны подряд квадраты всех натуральных чисел. Одномерный массив. 3. Даны натуральные числа M, n и целые числа a1; a2; ...; an. Все элементы массива разные....
C++ Дано натуральное число.Определить,сколько раз в нём встречается минимальная цифра(например, для числа 102200 ответ равен 3,для числа 40330-2,для числ Дано натуральное число.Определить,сколько раз в нём встречается минимальная цифра(например, для числа 102200 ответ равен 3,для числа 40330-2,для числа 10345-1)? http://www.cyberforum.ru/cpp-beginners/thread392147.html
C++ Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое!
Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое!
Известен рост трех человек.Определить,одинаков ли их рост? C++
Известен рост трех человек.Определить,одинаков ли их рост?
C++ Как сделать шаблон функции для определения максимального расстояния между элементами http://www.cyberforum.ru/cpp-beginners/thread392139.html
Написать программу которая использует шаблон функции для определения максимального расстояния между элементами в наборе в 5 элементов. Проверьте программу используя 5 целых чисел, 5 чисел с плавающей точкой, 5 символов я начал а дальше не знаю что делать: #include "stdafx.h" template <class diga> diga djiga(diga &a, diga&b, diga&c, diga&d, diga&e); {diga max, min; if (a>b) { max=a;
C++ Pointer. Int * Создать функцию, которая находит максимальное значение из int *a pointer (подсказка: используйте *a pointer как динамичный массив, также используйте strlen() для размера массива. я научилась пользоваться поитером из чаров более менее, а вот интеджеры для меня все еще не понятны. вот, как вижу решение я, но оно от корня неправильное. #include <iostream> using namespace std; void max(int... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
26.11.2011, 14:22     Поиск и вывод слов начинающихся на 'l'
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++;
   }
}
 
Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru