1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
1

Найти количество прописных букв в строке

27.03.2015, 19:05. Показов 1908. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня код:

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
#include<iostream>
#include<cctype>
#include<cstdio>
#include<cstring>
using namespace std;
int main ()
{
    int i=0;
    char *p;
    char str [100];
    setlocale (LC_ALL,"");
    cout << "Введите строку" << endl;
    gets(str);
    p=str;
    while (*p) {
          p++;
          if (isupper (*p)) {
          i++;
          }
          }
          cout << "Количество прописных букв: " << i << endl;
          system("pause");
          return 0;
          }
Выдает все, что угодно, но только не правильный ответ, в лучшем случае ответ отличается на единицу (меньше), скажите что не так с программой, но только в рамках курса до указателей
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2015, 19:05
Ответы с готовыми решениями:

Найти количество прописных букв в строке
Уже как пол месяца я изучаю С++ по книге Герберта Шилдта &quot;С++. Руководство для начинающих&quot;. На мой...

Проверить количество заглавных букв в строке А и количество прописных букв в строке В
Добрый день, помогите разобраться. Пишу программу, которая должна проверять количество заглавных...

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

Подсчитать количество прописных латинских букв в строке
Дано строку.Подсчитать количество прописаных латинских букв,что содержаться в нем

12
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:07 2
Функция isupper с русскими буквами не дружит
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:09  [ТС] 3
Jrr, Да точно, латинскими буквами все работает, эх зря побеспокоил, тогда посоветуйте, как лучше сделать, чтобы считало русские буквы
0
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:14 4
Для русских букв придется свою функцию писать.
В вашей программе кажется ошибка. в 16 строчке указатель увеличивается, а в следующей строке проверяется.

Добавлено через 1 минуту
Первая буква в строке будет пропущена
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:16  [ТС] 5
Jrr, У меня на Deve показывает на одну букву меньше, в Visual Studio все вроде верно, но все же подскажите, как поправить
0
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:19 6
while (*p)
{
if (isupper (*p))
i++;

p++; // тут пусть будет p++

}
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:25  [ТС] 7
Jrr, Да так лучше, только еще одна бяка вылезла: если вводить строку из нескольких слов, консоль зависает, в смысле не выдает больше ничего, кроме пустоты
0
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:31 8
Лучший ответ Сообщение было отмечено Alexandr_Saenko как решение

Решение

Х.м. я даже не знаю...
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:37  [ТС] 9
Jrr, Тут прикол если p++ поставить после if, второе и последующие слова не просчитываются, если поставить до if не считается первая буква)))))))))))))))))))
0
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:42 10
Покажи всю программу
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:45  [ТС] 11
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<cctype>
#include<cstdio>
#include<cstring>
using namespace std;
int main ()
{
    int i=0;
    char *p;
    char str [100];
    setlocale (LC_ALL,"");
    cout << "Vvedite stroku" << endl;
    gets(str);
    p=str;
    while (*p) {
                  // если вставить p++ здесь, на 1 пропис. букву меньше
          if (isupper (*p)) {
          i++;
           p++;   // если p++ вставить здесь, тогда больше 1 слова не читается
          }
          }
          cout << "Kol-vo propisnih ravno: " << i << endl;
          system("pause");
          return 0;
          }
0
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:52 12
Лучший ответ Сообщение было отмечено Alexandr_Saenko как решение

Решение

Да не здесь эта p++ должна стоять

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
#include<iostream>
#include<cctype>
#include<cstdio>
#include<cstring>
using namespace std;
int main ()
{
    int i=0;
    char *p;
    char str [100];
    setlocale (LC_ALL,"");
    cout << "Vvedite stroku" << endl;
    gets(str);
    p=str;
    while (*p) 
    {
                  // если вставить p++ здесь, на 1 пропис. букву меньше
          if (isupper (*p)) {
          i++;
          // p++;   // если p++ вставить здесь, тогда больше 1 слова не читается
          }
 
           p++;  // <-- вот где она должна быть
 
          }
 
          cout << "Kol-vo propisnih ravno: " << i << endl;
          system("pause");
          return 0;
          }
Добавлено через 2 минуты
..
0
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:52  [ТС] 13
Jrr, Блин, не ну ты представляешь, какой косяк я сделал, я даже не заметил, все спасибо большое за помощь, все правильно, я знаю, что там ставить не надо, просто не заметил.
1
27.03.2015, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2015, 19:52
Помогаю со студенческими работами здесь

Подсчитать количество содержащихся в строке прописных латинских букв
Дана строка. Подсчитать количество содержащихся в ней прописных латинских букв. Помогите...

Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов.
Помогите, пожалуйста, написать программу :scratch: Подсчитать, сколько было введено: латинских...

Посчитать количество строчных и количество прописных букв
Написать программу, в которой с клавиатуры вводится строка. Посчитать количество строчных и...

Как написать функцию, которая подсчитывает число прописных и строчных букв в строке?
Как написать функцию, которая подсчитывает число прописных и строчных букв в строке? В С++ ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru