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

Функция подсчёта буквы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 10:05     Функция подсчёта буквы #1
определить функцию для вычисления количества букв "c" в слове... Помогите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 10:11     Функция подсчёта буквы #2
C++
1
std::count(str.begin(), str.end(), 'c');
Или
C++
1
2
3
4
5
6
7
8
template <class Iterator, class T> unsigned count(Iterator first, Iterator last, const T value)
{
    unsigned count = 0;
    for( ; first != last; ++first)
        if(*first == value)
            ++count;
    return count;
}
Принимает указатель на первый элемент и на следующий за последним, т.е. в строке str с количеством символов = 10 будет так вызываться
C++
1
count(str, str + 10, 'c');
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 10:22  [ТС]     Функция подсчёта буквы #3
Цитата Сообщение от soon Посмотреть сообщение
C++
1
std::count(str.begin(), str.end(), 'c');
А как её вставить в программу, можно фрагмент программы?
greeezz
30.12.2011, 10:27
  #4

Не по теме:

Цитата Сообщение от romster Посмотреть сообщение
А как её вставить в программу, можно фрагмент программы?
а вам преподаватель разрешает пользоваться готовыми функциями из библиотек C++ или вам все же надо свою функцию написать ?

romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 10:37  [ТС]     Функция подсчёта буквы #5
Цитата Сообщение от greeezz Посмотреть сообщение
а вам преподаватель разрешает пользоваться готовыми функциями из библиотек C++ или вам все же надо свою функцию написать ?
Из библиотек можно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 10:39     Функция подсчёта буквы #6
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string str = "ololo, ololo, i'm driver ufo";
    std::cout << str << std::endl << std::count(str.begin(), str.end(), 'o') << std::endl;
    return 0;
}
Добавлено через 56 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
template <class Iterator, class T> unsigned count(Iterator first, Iterator last, const T value)
{
    unsigned count = 0;
    for( ; first != last; ++first)
        if(*first == value)
            ++count;
    return count;
}
 
int main()
{
    std::string str = "ololo, ololo, i'm driver ufo";
    std::cout << str << std::endl << count(str.begin(), str.end(), 'o') << std::endl;
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.12.2011, 10:47     Функция подсчёта буквы #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
using namespace std;
 
int main(int argc, char* argv[])
{
    char s[] = "Hello";
    char c = 'l';
 
    cout << count (s, s + 5, c) << endl;
 
    system ("pause");
    return 0;
}
Добавлено через 18 секунд
Или так
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
#include <iostream>
#include <algorithm>
using namespace std;
 
size_t count (char *first, char *end, char c)
{
    size_t cnt = 0;
    char *p;
 
    for ( p = find (first, end, c) ; p != end ; p = find (p + 1, end, c) )
        ++cnt;
 
    return cnt;
}
 
int main(int argc, char* argv[])
{
    char s[] = "Hello";
    char c = 'l';
 
    cout << count (s, s + 5, c) << endl;
 
    system ("pause");
    return 0;
}
Добавлено через 2 минуты
Или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
using namespace std;
 
int main(int argc, char* argv[])
{
    string str ("Hello");
    char c = 'l';
 
    cout << count (str.begin(), str.end (), c) << endl;
 
    system ("pause");
    return 0;
}
greeezz
30.12.2011, 11:01
  #8

Не по теме:

Цитата Сообщение от romster Посмотреть сообщение
Из библиотек можно
почему-то всегда считал что определить функцию для вычисления количества букв "c" в слове подразумевает написать ее самостоятельно.

romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 11:18  [ТС]     Функция подсчёта буквы #9
Цитата Сообщение от greeezz Посмотреть сообщение
самостоятельно
А если самостоятельно, то как? Можно программу
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
30.12.2011, 11:22     Функция подсчёта буквы #10
Цитата Сообщение от romster Посмотреть сообщение
А если самостоятельно, то как? Можно программу
Самостоятельно это когда вы не используете функции которые уже есть в библиотеках языка. А пишите функцию для подсчета символов сами.
Посмотрите вариант предложенный go в седьмом посте. который он добавил через 18 секунд после первого. Хотя там тоже не совсем что вам надо. потому что там используется функция find()
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 11:25     Функция подсчёта буквы #11
Цитата Сообщение от romster Посмотреть сообщение
А если самостоятельно, то как? Можно программу
Пост #2, код #2
Пост #6, код #2
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
30.12.2011, 11:35     Функция подсчёта буквы #12
Вам надо написать функцию которая примет в качесве аргумента указатель на ваше слово (строку) и символ который надо искать. далее в цикле пройдите по слову (строке) и сравните буквы слова (строки) с символом. если совпадает то увеличивайте количество совпадений на 1.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от soon Посмотреть сообщение
Пост #2, код #2
Пост #6, код #2
боюсь вам сейчас придется сюда перепечатать учебник по темплейтам



Добавлено через 6 минут
romster, вот это все что вам надо написать.
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
#include <iostream>
using std::cout;
using std::cin;
 
int count(const char *, const char &);
 
int main(){
 
    char ch = 'c';
    char a[] = "cycling";
 
    cout << count(a, ch);
 
    cin.get();
    return 0;
}
 
 
int count(const char *str, const char &ch){
    int c = 0;
    for(int i = 0; str[i]!='\0'; ++i){
        if(str[i] == ch){
            c++;
        }
    }
    return c;
}
ну неужели сложно ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 11:35     Функция подсчёта буквы
Еще ссылки по теме:

C++ Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра
C++ Программа подсчёта монет
C++ Функция подсчета слов, состоящих из одной буквы

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

Или воспользуйтесь поиском по форуму:
soon
30.12.2011, 11:35     Функция подсчёта буквы
  #13

Не по теме:

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

Yandex
Объявления
30.12.2011, 11:35     Функция подсчёта буквы
Ответ Создать тему
Опции темы

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