Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Alexandr_Saenko
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
#1

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

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

Здравствуйте, у меня код:

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;
          }
Выдает все, что угодно, но только не правильный ответ, в лучшем случае ответ отличается на единицу (меньше), скажите что не так с программой, но только в рамках курса до указателей
http://www.cyberforum.ru/cpp-beginners/thread1585977.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2015, 19:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти количество прописных букв в строке (C++):

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

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

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

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

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

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

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

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

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

Решение

Х.м. я даже не знаю...
0
Alexandr_Saenko
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:37  [ТС] #9
Jrr, Тут прикол если p++ поставить после if, второе и последующие слова не просчитываются, если поставить до if не считается первая буква)))))))))))))))))))
0
Jrr
0 / 0 / 2
Регистрация: 27.03.2015
Сообщений: 10
27.03.2015, 19:42 #10
Покажи всю программу
0
Alexandr_Saenko
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
Jrr
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
Alexandr_Saenko
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 37
27.03.2015, 19:52  [ТС] #13
Jrr, Блин, не ну ты представляешь, какой косяк я сделал, я даже не заметил, все спасибо большое за помощь, все правильно, я знаю, что там ставить не надо, просто не заметил.
1
27.03.2015, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2015, 19:52
Привет! Вот еще темы с решениями:

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

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

Как найти максимальное количество одинаковых букв в строке
Как найти максимальное количество одинаковых букв в строке. Например: ввод:...

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


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

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

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