Security Teams



:::
  Ответ в темуСоздание новой темыСоздание опроса

> строки в С++, нужна помощь
WASABY
Дата 3.06.2007 - 09:56
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


Есть задание: ввести предложение, подсчитать и вывести слова, которые начинаются с определенных букв.
У меня вопрос: с помощью какой функции это можно сделать, а то препод задание выдал, а нефига не объяснил.
заранее благодарен.
ЗЫ: язык C++


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
DeHunter
Дата 3.06.2007 - 11:09
Цитировать сообщение
Offline



Activist
**

Профиль
Группа: -users-
Сообщений: 72
Пользователь №: 2728
Регистрация: 27.01.2006



Рейтинг:
(20%) X----


самописной. Стандартной я не видел.
Пусть b символ с которого должно начинатся слово( Для символов можно сделат вложеный цикл и массив ).
Код

for( ps = &buff, (*ps==b) ? c=1 : c = 0; *ps != 0; ps++ )
____ if( (*ps == ' ')  && ( *(ps+1)==b ) ) c++;

Вродебы так. Тоесть логика такая - ломимся до пробела. Если нашли пробел то смотрим какой следуший за ним символ идёт. А в начале это особый случай когда у нас нету перед словом пробела.
ЗЫ
Не отлаживал, писал побыстрому поэтому хрен его знает будет работать или нет, но идея вродебы правильная.
PMПисьмо на e-mail пользователюСайт пользователяICQ
Top
DeHunter
Дата 3.06.2007 - 11:11
Цитировать сообщение
Offline



Activist
**

Профиль
Группа: -users-
Сообщений: 72
Пользователь №: 2728
Регистрация: 27.01.2006



Рейтинг:
(20%) X----


ЗЫ
Принеси преподу вот так -
Код

for( ps = &buff, (*ps==b) ? c=1 : c = 0; *ps != 0; ps++, ( (*ps == ' ')  && ( *(ps+1)==b ) ) ? c++ : c );

=))))))))))))))
PMПисьмо на e-mail пользователюСайт пользователяICQ
Top
Dimon
Дата 3.06.2007 - 14:31
Цитировать сообщение
Offline



Editors
****

Профиль
Группа: -editors-
Сообщений: 446
Пользователь №: 17
Регистрация: 18.02.2005



Рейтинг:
(60%) XXX--


[off-topic]
DeHunter

Месье знает толк в извращениях smile.gif)
[/off-topic]


--------------------
Dmitry Panoff aka Dimon
Registered Linux user N330143
2:465/213.86@Fidonet
I can read OpenOffice.org. documents
PMICQ
Top
WASABY
Дата 3.06.2007 - 21:03
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


DeHunter
препод и так нефига не шарит в С wink.gif


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
WASABY
Дата 4.06.2007 - 15:03
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


проблема решена....

Код

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
main()
{
const int n=13;
char text[n][9];
char p,k;
int i;
cout<<"Введите текст, после каждого слова нажимая Enter:"<<"\n";
for (i=0;i<n;i++)
cin>>text[i];

cout<<"Введите первые две буквы искомого слова через Enter: "<<"\n";
cin>>p>>k;

cout<<"Искомые слова:"<<"\n";
for (i=0; i<n; i++)
{
if(text[i][0]==p && text[i][1]==k)
{
cout<<text[i]<<"\n";
}
}
return 0;
}


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
nerezus
Дата 11.06.2007 - 21:21
Цитировать сообщение
Offline



.:Вселенский отказник:.
***

Профиль
Группа: -users-
Сообщений: 302
Пользователь №: 265
Регистрация: 20.04.2005



Рейтинг:
(30%) XX---


https://www.cppreference.com/cppstring/index.html
тут все есть
PMICQ
Top
Mail2k
Дата 17.06.2007 - 19:43
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


Цитата (WASABY @ 4.06.2007 - 15:03)
проблема решена....

Код

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
main()
{
const int n=13;
char text[n][9];
char p,k;
int i;
cout<<"Введите текст, после каждого слова нажимая Enter:"<<"\n";
for (i=0;i<n;i++)
cin>>text[i];

cout<<"Введите первые две буквы искомого слова через Enter: "<<"\n";
cin>>p>>k;

cout<<"Искомые слова:"<<"\n";
for (i=0; i<n; i++)
{
if(text[i][0]==p && text[i][1]==k)
{
cout<<text[i]<<"\n";
}
}
return 0;
}

тестилл программу. Компилируется нормально,но после запуска вылетает ошибка.
PMПисьмо на e-mail пользователю
Top
WASABY
Дата 18.06.2007 - 12:18
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


Mail2k
Странно, у меня все нормально выполняется, уже даже защитил программу.
А что утебя за ошибка вылетает?


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top

Опции темы Ответ в темуСоздание новой темыСоздание опроса