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

Дана строка. Подсчитать количество букв K в последнем ее слове - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Darkin
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 83
15.06.2012, 13:49     Дана строка. Подсчитать количество букв K в последнем ее слове #1
1)Дана строка. Подсчитать количество букв K в последнем ее слове.
2)Упорядочить по возрастанию элементы каждой строки матрицы
размером mxn.
3)Даны целые положительные числа а1, а2,..., аn. Найти среди
них те, которые являются квадратами некоторого числа m.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2012, 13:49     Дана строка. Подсчитать количество букв K в последнем ее слове
Посмотрите здесь:

C++ Дана строка подсчитать количество латинских букв
C++ Дана строка. Подсчитать количество букв k в последнем ее слове.
C++ Дана строка. Подсчитать количество букв k в последнем ее слове.
C++ Подсчитать количество букв k в последнем слове
Дана строка.Подсчитать в ней количество вхождений букв f,k,t. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DanilAREFY
19 / 19 / 2
Регистрация: 12.04.2011
Сообщений: 35
15.06.2012, 15:35     Дана строка. Подсчитать количество букв K в последнем ее слове #2
1-я
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
int main(void)
{
    string string1 = "asdfasfsdf sadfasf kasdfasfskkkdf";
    string lastword = string1.substr(string1.find_last_of(' '));
    int nKol=0;
    for(int nI=0; nI<lastword.length(); nI++)
    {
        if(lastword[nI] == 'k')
        {
            nKol++;
        }
    }
    cout << "Result: "
        << nKol
        << endl;
    system("pause");
    return 0;
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
15.06.2012, 17:05     Дана строка. Подсчитать количество букв K в последнем ее слове #3
Цитата Сообщение от DanilAREFY Посмотреть сообщение
1-я
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
int main(void)
{
    string string1 = "asdfasfsdf sadfasf kasdfasfskkkdf";
    string lastword = string1.substr(string1.find_last_of(' '));
    int nKol=0;
    for(int nI=0; nI<lastword.length(); nI++)
    {
        if(lastword[nI] == 'k')
        {
            nKol++;
        }
    }
    cout << "Result: "
        << nKol
        << endl;
    system("pause");
    return 0;
}
а что делает строка string lastword = string1.substr(string1.find_last_of(' ')); ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
15.06.2012, 17:05     Дана строка. Подсчитать количество букв K в последнем ее слове #4
Интересно, а так делать можно?
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
#include <string>
 
int main()
{
    std::string str = "asdfasfsdf sadfaksf asdfasfsdf";
    std::string::size_type pos = str.rfind(' ');
    std::cout<< std::count((pos == std::string::npos ? str.begin() : str.begin() + pos ), str.end(), 'k') && 0;
    return 0;
}
warning: right operand of comma operator has no effect [-Wunused-value]

Если убрать && 0 - тогда в случае, если k не встретилось, 0 не показывает.
Darkin
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 83
16.06.2012, 14:50  [ТС]     Дана строка. Подсчитать количество букв K в последнем ее слове #5
DanilAREFY, спасибо
не поможете 2 и 3 ?
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
16.06.2012, 15:53     Дана строка. Подсчитать количество букв K в последнем ее слове #6
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <random>
#include <ctime>
 
 
int main()
{
    std::mt19937 gen(std::time(0));
    std::uniform_int_distribution <> distr(15, 80);
    std::size_t rows = 10, cols = 15;
    std::vector <std::vector <int>> vec(rows, std::vector <int> (cols, 0));
    std::cout<<"Before:"<<std::endl;
    for_each(vec.begin(), vec.end(), [&gen, &distr] (std::vector <int> &arr) -> std::vector <int>
    {
        std::generate(arr.begin(), arr.end(), [&gen, &distr] () -> int { return distr(gen); });
        std::copy(arr.begin(), arr.end(), std::ostream_iterator <int> (std::cout, " "));
        std::cout<<std::endl;
        return arr;
    });
    std::cout<<"After:"<<std::endl;
    for_each(vec.begin(), vec.end(), [&gen, &distr] (std::vector <int> &arr) -> std::vector <int>
    {
        std::sort(arr.begin(), arr.end());
        std::copy(arr.begin(), arr.end(), std::ostream_iterator <int> (std::cout, " "));
        std::cout<<std::endl;
        return arr;
    });
    return 0;
}
Yandex
Объявления
16.06.2012, 15:53     Дана строка. Подсчитать количество букв K в последнем ее слове
Ответ Создать тему
Опции темы

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