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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 18:20   #1
grom4eg
 
Регистрация: 15.11.2012
Сообщений: 5
По умолчанию РАБОТА СО СТРОКАМИ c++

Задача:5. Даны натуральное число N, символы s1, s2,…,sN. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами.
А) Найти количество слов, начинающихся с буквы «б»
Б) найти количество слов, у которых первый и последний символы совпадают между собой.
grom4eg вне форума Ответить с цитированием
Старый 15.11.2012, 19:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

В чем сложности?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2012, 19:42   #3
grom4eg
 
Регистрация: 15.11.2012
Сообщений: 5
По умолчанию

во всем,
char str[] = "1"; вот начинаю с этой строки а дальше что...((
grom4eg вне форума Ответить с цитированием
Старый 15.11.2012, 19:46   #4
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Код:
#include <iostream>
#include <string>
using namespace std;


int main(void)
{
   string s = "буква  как astra то боб что  бык бла бла WOW";

   // А) Найти количество слов, начинающихся с буквы «б»
   int cnt = 0;
   string::size_type p;
   for(p = 0; (p = s.find(char('б'), p)) != string::npos; p = s.find_first_not_of(' ', ++p)) {
       if((! p) || ((p > 0) && (s[p - 1] == ' ')))
          cnt++;
   }
   cout << "count words: " << cnt << endl;

   //Б) найти количество слов, у которых первый и последний символы совпадают между собой.
   cnt = 0;
   p   = 0;
   string::size_type t;
   while((p = s.find_first_not_of(' ', p)) != string::npos) {
       t = s.find_first_of(' ', p);
       t = (t == string::npos) ? s.length() - 1 : t - 1;
       if(s[p] == s[t])
          cnt++;
       p = t + 1;
   }
   cout << "count cmp: " << cnt << endl;
   return 0;
}
Nuklon вне форума Ответить с цитированием
Старый 15.11.2012, 19:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А далее не лениться и поискать примеры разбора строки на массив слов.
К примеру тут:
http://www.programmersforum.ru/showthread.php?t=91677
http://www.programmersforum.ru/showthread.php?t=121545
Или вот:
http://www.programmersforum.ru/showthread.php?t=199931

Изучить эти и подобные им примеры и пробовать применить ейные наработки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2012, 19:52   #6
grom4eg
 
Регистрация: 15.11.2012
Сообщений: 5
По умолчанию

Да спасибо больше, очень благодарен.
grom4eg вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в C++ telogrejka Помощь студентам 6 27.02.2011 20:32
Работа со строками в С++ Aleksandr22 Помощь студентам 15 26.02.2011 06:15
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа со строками ManU Общие вопросы C/C++ 1 18.04.2010 17:09
Работа со строками <Yuliya> Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 22.01.2010 05:21