Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mister pOO
1 / 1 / 0
Регистрация: 26.11.2011
Сообщений: 33
#1

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

26.11.2011, 13:52. Просмотров 528. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 13:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск и вывод слов начинающихся на 'l' (C++):

Поиск слов в файле, начинающихся с - C++
Необходимо: прочесть текст в файле, вывести все слова, начинающиеся с некоторой буквы. В данном случае - &quot;w&quot;. Искать обязательно через...

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

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

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

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

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

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
mister pOO
1 / 1 / 0
Регистрация: 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
26.11.2011, 16:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2011, 16:33
Привет! Вот еще темы с ответами:

Поиск и вывод слов, заключенных в скобки - C++
парни, помогите плз с программой. подправьте пожалуйста #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; void main() { ...

Строки. Поиск одинаковых слов в предложениях. Вывод вместо одинаковых слов "*" - C++
Ввести два предложения, если в них есть одинаковые слова то во втором предложении заменить эти слова на &quot;*&quot;, причем количество &quot;*&quot; должно...

Вывод на экран чётных слов строки исправить на вывод нечётных слов - C++
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; int i,l,j,k,p,n; char txt; char a,b; main() { ...

Найти количество слов, начинающихся с буквы b - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s,st; cout &lt;&lt; &quot;Vvedite stroku: &quot;; ...


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

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

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