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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
#1

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

30.12.2011, 10:05. Просмотров 2655. Ответов 12
Метки нет (Все метки)

определить функцию для вычисления количества букв "c" в слове... Помогите пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2011, 10:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция подсчёта буквы (C++):

Функция подсчёта всех цифр в строке - C++
Как написать функцию которая считает сумму всех цифр в строке?

Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра - C++
Задание: strlwr char *strlwr( char *s); Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра. P.S....

Функция изменение 2-ой буквы на прописную. - C++
Здравствуйте. Сделал функцию - изменения 2-ой буквы в строке на прописную. Логически вроде сделал правильно, но все равно не работает....

Функция нахождения заданной буквы в предложении - C++
Дано речення, визначити чи є буква а в ньому. Якщо така буква є знайти порядковий номер першої із них. Перевожу. Дано предложение,...

Функция подсчета слов, состоящих из одной буквы - C++
Здравствуйте помогите чутка доделать что не так надо подсчитать сколько слов в предложении начинаются с 1 буквы #include <iostream> ...

Рекурсивная функция, не возращающая значение, которая заменяет слова с большой буквы на точку - C++
помогите найти ошибку в программе #include <iostream> #include <string> using namespace std; void func(string s,int pos) { string...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 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');
0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 10:22  [ТС] #3
Цитата Сообщение от soon Посмотреть сообщение
C++
1
std::count(str.begin(), str.end(), 'c');
А как её вставить в программу, можно фрагмент программы?
0
greeezz
30.12.2011, 10:27
  #4

Не по теме:

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

0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
30.12.2011, 10:37  [ТС] #5
Цитата Сообщение от greeezz Посмотреть сообщение
а вам преподаватель разрешает пользоваться готовыми функциями из библиотек C++ или вам все же надо свою функцию написать ?
Из библиотек можно
0
soon
2540 / 1305 / 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;
}
0
go
Эксперт C++
3586 / 1366 / 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;
}
0
greeezz
30.12.2011, 11:01
  #8

Не по теме:

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

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

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 11:35
Привет! Вот еще темы с ответами:

Создать функцию на согласные буквы, если согл. буква, то функция возвращает ей значение 1, а гласной-0. - C++
Помогите пожалуйста, не могу понять где тут ошибка! уже так долго с ней мучаюсь=( #include&lt;iostream&gt; using namespace std; void...

Программа подсчёта монет - C++
Даны монеты номиналом 1, 2, 5, 10, 25, 50. Нужно написать программу, в которую вводится любое значение(сумма монет, т.е может быть: 60,...

Программа подсчёта букв - C++
Написать программу подсчета букв е, во введенной строке. Заранее благодарю.

Программа подсчёта битов - C++
Добрый вечер, кто не спит! Скажите пожалуйста, я вот написал программку, по условию она должна считать количество битов &quot;00&quot; (пар нолей)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru