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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.63
Harvey
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 32
#1

Посчитать количество строчных и количество прописных букв - C++

28.03.2013, 17:37. Просмотров 4287. Ответов 9
Метки нет (Все метки)

Написать программу, в которой с клавиатуры вводится строка. Посчитать количество строчных и количество прописных букв в этой фразе.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать количество строчных и количество прописных букв (C++):

Дана строка. Подсчитать общее колличество прописных и строчных латинских и русских букв и вывести на консоль количество - C++
Нужно ввести с консоли строку символов (длиной до 80 символов), и вывести на консоль количество маленьких букв в строке и количество...

Количество прописных букв в строке - C++
Привет всем. Ребят есть такая задача: напишите программу, которая подсчитывает и отображает на экране количество прописных букв в строке....

Найти количество прописных букв в строке - C++
Здравствуйте, у меня код: #include<iostream> #include<cctype> #include<cstdio> #include<cstring> using namespace std; int...

Посчитать количество всех букв и количество вхождений каждой буквы - C++
Есть файл из нескольких строк. нужно: 1 посчитать количество всех букв 2 посчитать количество каждой из букв (abcd) Проблема:...

Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б - C++
Напишите пожалуйста программу в С++: Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв,...

Преобразование всех строчных букв в прописные, а прописных — в строчные - C++
Задача:Код строчных букв ASCII отличается от кода прописных на 32. Таким образом, чтобы преобразовать строчную букву в прописную,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
avfed
15 / 13 / 2
Регистрация: 24.01.2013
Сообщений: 23
28.03.2013, 17:46 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
int main()
{
    char fraza[255]="";
    cin>>fraza;
    int a=0,b=0;
    for (int i=0;i<255;i++)
    {
        if ((fraza[i]>'A')&&(fraza[i]<'Z'))a++;
        if (fraza[i]>'a'&&fraza[i]<'z')b++;
    }
    cout<<"Big "<<a<<"\nSmall "<<b<<endl;
    getwchar();
    return 0;
}
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
28.03.2013, 17:51 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <string>
 
int main() 
{
    setlocale (0, "Russian");
    
    std::string text = "Написать программу, в которой с клавиатуры вводится строка."
                        "Посчитать количество строчных и количество прописных букв в этой фразе.";
    //std::getline(std::cin, text);
    std::cout<<"количество прописных: "<<std::count_if(text.begin(), text.end(), isupper)<<"\n";
    std::cout<<"количество строчных: "<<std::count_if(text.begin(), text.end(), islower)<<"\n";
 
    return 0;
}
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
30.07.2013, 15:43 #4
Мне кажется цикл while здесь уместнее, если предположить что мы не знаем какова длинна строки.

Как Вам вот такой вариант:

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
34
35
36
37
#include <iostream>
#include <cstring>
#include <cstdio>
#include <clocale>
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "");
 
    int i, count_big, count_small;
    i=count=0;
    char str[80];
    char *p;
 
    p=str;
 
    cout<<"Введите строку: ";
    gets(str);
 
    while (p[i])
    {
        if(isupper(p[i]))
        {
            i++;
            count_big++;
        }
         if(islower(p[i]))
        {
            i++;
            count_small++;
        }
        i++;
    }
    cout<<"количество прописных букв в строке: "<<count<<endl;
 
    return 0;
}
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
30.07.2013, 15:55 #5
Цитата Сообщение от h_wolf Посмотреть сообщение
что мы не знаем какова длинна строки
ну пусть так, а что же у Вас ограничение то на 79символов?) и что это за изврат?
Цитата Сообщение от h_wolf Посмотреть сообщение
C++
1
2
3
char str[80];
 char *p; 
p=str;
в чем заключается смысл манипуляций, очень хотелось бы услышать причину этих действ
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
30.07.2013, 16:03 #6
Я только только начал учится трудному ремеслу программирования)
В данный момент учусь по книге Г. Шилдта С++ Базовый курс

По поводу длинны строки - эта програмка писалась как ответ на один из контрольных вопросов и длина строки в 79 символов была взята просто с потолка. никто не мешает установить там 255)

По поводу работы с элементами массива через указатель - мне тоже кажется это нелогичным но в книге было написано что таким образом код становится "компактнее и читабельнее", что так лучше. Вы как опытный как более опытный программист, как я понимаю, считаете иначе? Спорить не буду, буду рад если объясните как лучше, за тем собственно сюда и пришел.

Добавлено через 3 минуты
Эм, да, изначально код писался только для подсчета прописных букв, поэтому там в конце листинга тоже есть несовпадения с реальностью. конец кода должен быть следующим:

C++
1
2
3
4
cout<<"количество прописных букв в строке: "<<count_big<<endl;
cout<<"количество строчных букв в строке: "<<count_small<<endl;
 
    return 0;
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
30.07.2013, 16:03 #7
нет ну просто раз работаете с указателем, чего
C++
1
str
не использовать? зачем лишний
C++
1
р
, решение от DiffEreD, менее зависим от длин
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
30.07.2013, 16:06 #8
Цитата Сообщение от aLarman Посмотреть сообщение
нет ну просто раз работаете с указателем, чего
Код C++
1
str
не использовать? зачем лишний
Вы к тому что имя массива и так указатель? Или я опять что-то не так понимаю (уж простите, но знаний и опыта практически 0)

Дело в том что некоторые контрольные программки в ответах написаны именно с таким использование указателей, вот я и подумал что так лучше, хотя мне и самому непонятно зачем "огород городить"??

А решение DiffEreD для меня на данной ступени эволюции вообще нечитаемо, я не понимаю как оно работает.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
31.07.2013, 09:09 #9
Цитата Сообщение от h_wolf Посмотреть сообщение
Вы к тому что имя массива и так указатель?
Вы совершенно правы
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
31.07.2013, 09:11 #10
Спасибо за ответ Исправлюсь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 09:11
Привет! Вот еще темы с ответами:

Количество строчных букв в строке - C++
Подсчитать количество строчных букв, то есть прописные (маленькие) в строке.

Вычислить общее количество строчных букв - C++
Вычислить общее количество строчных английских и строчных букв. Не получается это вычислить, после пробела не высчитывает буквы. Еще ...

Необходимо исправить ошибки, связанные с неверным использованием прописных и строчных букв - C++
Условие: Вводятся две строки типа Слово1 Слово2. Необходимо исправить ошибки, связанные с неверным использованием прописных и строчных...

В заданной строке найти количество строчных букв - C++
Помогите написать лабу на Си!! 1.Выровнять слова в строках по ширине самой длинной строки!! 2.В заданной строке найти колличество...


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

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

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