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

Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр - C++

Восстановить пароль Регистрация
 
devib1ood
 Аватар для devib1ood
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
29.01.2014, 15:42     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #1
Помогите, плиз.
Написать программу с функцией, которая в заданной строке проверяет, чего больше: букв или цифр.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 15:42     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр
Посмотрите здесь:

Дан файл, содержащий произвольный текст. Выяснить, чего в нем больше: русских букв или цифр C++
Строки! чего больше букв, цифр или спец. символов C++
C++ Определить каких букв больше в строке: гласных или согласных и на сколько.
Определить, каких символов больше: цифр или латинских букв C++
C++ Вводится строка. Каких букв в строке больше 'а' или 'в'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
29.01.2014, 16:01     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #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
#include <iostream>
#include <string>
 
 
int main(int argc, char *argv[])
{
    std::string str;
    unsigned words = 0;
    unsigned digits = 0;
    
    std::cout << "Введите строку" << std::endl;
    std::cin >> str;
 
    for(std::string::iterator iter = str.begin(); iter != str.end(); ++iter)
        if(isdigit(*iter))
            ++digits;
        else if(isalpha(*iter))
            ++words;
            
    std::cout << "Строка:\n" << str << (words == digits
        ? "Букв и цифр одинаковое количество" :
        (words > digits ? "Букв больше" : "Цифр больше")) << std::endl;
 
    return 0;
}
devib1ood
 Аватар для devib1ood
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
29.01.2014, 16:17  [ТС]     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #3
а если писать проще, например, вот подсчет цифр:

Добавлено через 14 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int sumOfDigits(char *str)
{
    int sum = 0;
    int len;
    int i;
 
    len = strlen(str);
 
    for (i = 0; i < len; i++)
        if (str[i] >= '0' && str[i] <= '9')
            sum += str[i] - '0';
 
    return sum;
}
Добавлено через 35 секунд
а чтобы подсчитать буквы, как надо написать?
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
29.01.2014, 17:21     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #4
Цитата Сообщение от devib1ood Посмотреть сообщение
а чтобы подсчитать буквы, как надо написать?
вы сами ответили на свой вопрос:
C++
1
if(str[i] >= 'A'  &&  str[i] <= 'z')
или так:

C++
1
if(str[i] >= 65  &&  str[i] <= 122)
KOPOJI
29.01.2014, 17:23
  #5

Не по теме:

это, вроде как, не "плюсовый" подход, а "сишный".. Имхо, конечно

devib1ood
 Аватар для devib1ood
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
29.01.2014, 19:12  [ТС]     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #6
всем спасибо)

Добавлено через 1 час 37 минут
а вот если в таком варианте?
что у меня тут не так? написано в консоли, при запуске, просто консоль открывается и все, ничего не написано, хотя должно выводиться сообщении...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char a[]="vika12345";
 char b[]="0123456789";
 char c[]="qwertyuiopasdfghjklzxcvbnm";
 int sumch=0, sumbu=0, i, n;
 n=strlen(a);
  for (i=0; i<n; i++)
   {
    {if (a[i]=b[i])
         sumch=sumch+1;}
     {if (a[i]=c[i])
          sumbu=sumbu+1;}
    }
     if (sumch>sumbu)
         cout<<"Cifr bolshe";
      if (sumch<sumbu)
          cout<<"Bukv bolshe";
        if (sumch=sumbu)
            cout<<"Chislo bukv i cifr ravno";
 getch();
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
29.01.2014, 19:31     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #7
Цитата Сообщение от devib1ood Посмотреть сообщение
if (a[i]=b[i])
C++
1
if (a[i] == b[i])
Добавлено через 1 минуту
Цитата Сообщение от devib1ood Посмотреть сообщение
C++
1
if (a[i]=c[i])
C++
1
if (a[i] == c[i])
devib1ood
 Аватар для devib1ood
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
29.01.2014, 19:36  [ТС]     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #8
у меня так было написано, но сообщение не выводится, а когда поставил просто =, то выводится всегда - "Chislo bukv i cifr ravno", даже когда они не равны.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 19:48     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр
Еще ссылки по теме:

C++ Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков
C++ Программа, которая проверяет, можно ли введенное с клавиатуры слово (stroka_2) составить из букв исходного слова
В заданной строке найти наиболее длинную подстроку чередующихся цифр и букв C++

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

Или воспользуйтесь поиском по форуму:
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
29.01.2014, 19:48     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр #9
Цитата Сообщение от devib1ood Посмотреть сообщение
но сообщение не выводится
а разве должно? У вас условие не выполняется, нет одинаковых символов на одной позиции.
Цитата Сообщение от devib1ood Посмотреть сообщение
а когда поставил просто =, то выводится всегда - "Chislo bukv i cifr ravno"
Правильно.
Цитата Сообщение от devib1ood Посмотреть сообщение
C++
1
2
if (sumch=sumbu)
    cout<<"Chislo bukv i cifr ravno";
1. Выполнить присваивание значения
2. Привести записанное в переменную sumch значение к булеву типу
3. Т.к. строки не пустые, при приведении типов получится true
4. Т.к. получилось true => условие истинное
5. Вывести сообщение

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

Не по теме:

вообще, имхо, если вы не понимаете разницу между присвоением значения и сравнением значений, то вам надо сначала ознакомиться с основами

Yandex
Объявления
29.01.2014, 19:48     Программа с функцией, которая в заданной строке проверяет, чего больше: букв или цифр
Ответ Создать тему
Опции темы

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