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

В строке с найти количество слов заканчивающихся подстрокой с2 - C++

Восстановить пароль Регистрация
 
Оксана(ИТ-11)
 Аватар для Оксана(ИТ-11)
3 / 3 / 0
Регистрация: 27.11.2011
Сообщений: 34
27.08.2012, 12:11     В строке с найти количество слов заканчивающихся подстрокой с2 #1
В строке с найти количество слов заканчивающихся подстрокой с2!
Напишите пожалуйста простое решение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 12:11     В строке с найти количество слов заканчивающихся подстрокой с2
Посмотрите здесь:

Определить количество слов, заканчивающихся буквой а C++
C++ Дана строка символов. Найти количество слов начинающихся на A и заканчивающихся на D
C++ Количество слов, начинающихся и заканчивающихся одной буквой
Определить количество слов в каждой строке , начинающихся на ‘А’ и заканчивающихся на “ и” C++
Найти в предложении количество слов, заканчивающихся на ту же букву , что что и первое слово C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.08.2012, 12:55     В строке с найти количество слов заканчивающихся подстрокой с2 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iterator>
#include <cctype>
#include <algorithm>
 
class is_word_delimiter: public std::unary_function<char, bool>
{
public:
    bool operator () (const char &ch)
    {
        return ispunct(ch) || isspace(ch);
    }
};
 
int main()
{
    std::string c = "In the case of unary function objects, this operator() member function takes one single parameter";
    std::string c1 = "er";
    std::replace_if(c.begin(), c.end(), is_word_delimiter(), ' ');
    std::istringstream stream(c);
    std::vector<std::string> vec((std::istream_iterator<std::string>(stream)), 
            std::istream_iterator<std::string>());
    int count = 0;
    for (std::vector<std::string>::const_iterator it = vec.begin();
            it != vec.end();
            ++it)
        if ((*it).rfind(c1) + c1.size() == (*it).size())
            count++;
    std::cout << count << std::endl;
}
link
Оксана(ИТ-11)
 Аватар для Оксана(ИТ-11)
3 / 3 / 0
Регистрация: 27.11.2011
Сообщений: 34
27.08.2012, 13:08  [ТС]     В строке с найти количество слов заканчивающихся подстрокой с2 #3
а еще проще никак нельзя. мы такие выкрутасы просто не учили. самый базовый уровень. 1 курс. строки помогите кто нибудь пожалуйста.
-=ЮрА=-
Заблокирован
Автор FAQ
27.08.2012, 13:28     В строке с найти количество слов заканчивающихся подстрокой с2 #4
Цитата Сообщение от Оксана(ИТ-11) Посмотреть сообщение
а еще проще никак нельзя. мы такие выкрутасы просто не учили. самый базовый уровень. 1 курс. строки помогите кто нибудь пожалуйста.
- вот очень просто (ввод input и sfind делаем getline(cin,input); getline(cin,sfind) я просто опустил этот момент и задал текст внутри программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
    string input = "This is test of this program";//ÈñõîäГ*ûé ГІГҐГЄГ±ГІ Г±
    string sfind = "is";//ÏîäñòðîêГ* äëÿ ïîèñêГ* Г±2
    cout<<"c = "<<input<<endl;
    cout<<"c2= "<<sfind<<endl;
    int wordcount= 0;//×èñëî ñëîâ
    int findpos  = input.find(sfind,0);
    while(findpos != string::npos)
    {
        findpos = findpos + 1;
        findpos = input.find(sfind,findpos);
        wordcount = wordcount + 1;
    }
    cout<<"Number of words : "<<wordcount<<endl;
    return 0;
}
http://liveworkspace.org/code/17eef5...3356ee9d170bb0
Миниатюры
В строке с найти количество слов заканчивающихся подстрокой с2  
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.08.2012, 13:40     В строке с найти количество слов заканчивающихся подстрокой с2 #5
-=ЮрА=-, Вы не верно выполнили задание
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2012, 14:01     В строке с найти количество слов заканчивающихся подстрокой с2 #6
Цитата Сообщение от Оксана(ИТ-11) Посмотреть сообщение
а еще проще никак нельзя
попробуем:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<string.h>
#define N 1024
 
int main( )
{
   char s[N], t[N], *word;
   int len, len_word, count = 0;
   fgets(s, N, stdin);   // строка-предложение
   fgets(t, N, stdin);   // искомое слово в конце каждого из слов в s
   t[len = strlen(t) - 1] = '\0';
   for (word = strtok(s, " .,\n\t"); word; word = strtok(NULL, " .,\n\t"))
      if ((len_word = strlen(word)) >= len && strcmp((word + len_word - len), t) == 0)
         ++count;
   printf("count = %d\n", count);
   return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
27.08.2012, 15:45     В строке с найти количество слов заканчивающихся подстрокой с2 #7
Пaтрик, лучше следить за своими брёвнами в глазу
На счёт алгоритма ну да он из за своей простоты иcкал просто вхождения с2 в слова с, хорошо я поправился. Код ниже.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    //Исходный текст с
    string input = "program gramatic diagram";
    string sfind = "am";//Подстрока для поиска с2
    string word  = "";  //Очередное слово из строки с
    cout<<"c = "<<input<<endl;
    cout<<"c2= "<<sfind<<endl;
    int wordcount= 0;//Число слов c окнчанием на c2
    int findpos  = 0;//Позиция вхождения подстроки в слово из с
    stringstream ss(input);//Инициализируем стрингпоток
    while(ss>>word)
    {
        findpos = word.find(sfind,0);
        if(findpos != string::npos)
        if(word.length() - findpos == sfind.length())
            wordcount = wordcount + 1;
    }
    cout<<"Number of words : "<<wordcount<<endl;
    return 0;
}
Отработка http://liveworkspace.org/code/46c899...6197b071b09ae1
Миниатюры
В строке с найти количество слов заканчивающихся подстрокой с2  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2012, 16:33     В строке с найти количество слов заканчивающихся подстрокой с2
Еще ссылки по теме:

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву C++
C++ Вычислить, сколько в строке слов, заканчивающихся гласной буквой
C++ Вычислить количество слов в заданной строке, начинающихся и заканчивающихся 'W'

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

Или воспользуйтесь поиском по форуму:
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.08.2012, 16:33     В строке с найти количество слов заканчивающихся подстрокой с2 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    static char *c1 = "dog ignition brown fox distortion tion jumps over a lazy dog motion";
    static char *c2 = "tion";
 
    int count = 0;
    for (char* buf = c1; (buf = strstr(buf, c2)) != NULL; *buf++)
        if (!isspace(*(buf-1))) count++;
 
    printf("str = \"%s\"\n",c1);
    printf("substr = \"%s\" count = %d\n",c2,count);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/90a1f8...cf2a4be858fff1
Миниатюры
В строке с найти количество слов заканчивающихся подстрокой с2  
Yandex
Объявления
27.08.2012, 16:33     В строке с найти количество слов заканчивающихся подстрокой с2
Ответ Создать тему
Опции темы

Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru