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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
dim25rus
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 18
#1

Количество заглавных букв в строке - C++

05.10.2012, 18:16. Просмотров 1802. Ответов 10
Метки нет (Все метки)

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

я что-то набросал.
подскажите,пожалуйста,как реализовать отбор по верхнему регистру?
и все таки будет лучше,если целиком программу напишите,я сверю
спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2012, 18:16     Количество заглавных букв в строке
Посмотрите здесь:

Сосчитать количество заглавных букв в предложении C++
C++ Определение заглавных букв в файле.
количество букв в строке C++
C++ Посчитать количество букв в строке
C++ Количество букв <A> в строке
Подсчитать количество букв в строке C++
Строки. Подсчитать количество заглавных букв в тексте; вывести на экран слова, имеющие наименьшее количество букв... (подправить) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
05.10.2012, 18:22     Количество заглавных букв в строке #2
if (str[i] > 'z' and str[i] <= 'Z' ) countr++;
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
05.10.2012, 18:31     Количество заглавных букв в строке #3
C++
1
if (str[i] >= 'A' and str[i] <= 'Z' ) countr++;
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
05.10.2012, 18:47     Количество заглавных букв в строке #4
C++
1
std::count_if(str.begin(), str.end(), isupper);
http://liveworkspace.org/code/9e7355...5192fc17ec3457
dim25rus
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 18
06.10.2012, 03:11  [ТС]     Количество заглавных букв в строке #5
спасибо

Добавлено через 47 минут
выводит 2 ошибки,которые мне не удается решить.
не пинайте за код-моя первая программа на c++
до сих пор только паскаль,бэйсик и html.

ошибки:
E2377 if statement missing ) в строке 17
W8066 Unreachable code в строке 28
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
#pragma argsused
int main(int argc, char* argv[])
{
  char str[80];  // Вводим массив длиной 80 символов
  double i;  //Вводим вещественные переменные
  double x=0;
  printf("Welcome to our program. \n");  // Выводим сообщение на экран
 
  loop:
  {
  printf("Please enter the string of symbols. \n");  // Выводим сообщение на экран
  gets(str);
 
    for (int i = str[0]; i <= str[80]; i++)
    {
 
    if (str[i] >= 'A' and str[i] <= 'Z' ) countr++;
 
        {
        x=x+1;
        }
 
    }
 
  }
  goto loop;
 
  printf("Number of caps is",x);  // Выводим сообщение на экран
  printf("\nPress any key to exit");
 
  getch();
  return 0;
}
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2012, 05:45     Количество заглавных букв в строке #6
C++
1
if (str[i] >= 'A' && str[i] <= 'Z' )
countr не определён.

Добавлено через 9 минут
C++
1
if (str[i] >= 'A' && str[i] <= 'Z' ) ++x;
Добавлено через 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
25
26
27
28
29
30
31
#include <cstdio>
#include <cstdlib>
#include <сstring>
 
int main()
{
  char str[80];  // Вводим массив длиной 80 символов
  //double i;  //Вводим вещественные переменные
  int x = 0;
  
  printf("Welcome to our program. \n");  // Выводим сообщение на экран
 
  loop:
  {
  printf("Please enter the string of symbols. \n");  // Выводим сообщение на экран
  
  gets(str);
 
  for (int i = 0; i < strlen(str); i++)
       if (str[i] >= 'A' && str[i] <= 'Z' ) ++x;
 
    printf("Number of caps is %d\n",  x);  // Выводим сообщение на экран
    x = 0;
  }
  goto loop;
 
  printf("\nPress any key to exit");
  
  getchar();
  return 0;
}
Во-первых, это С (как в С++ делается - ссылка в 4 посте). Во-вторых, в С++ настоятельно не рекомендуется использовать goto. Всё нужно стараться через циклы делать. В-третьих, как предполагается выход из loop?

Добавлено через 14 минут
Через цикл, например, можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
do
  {
    printf("Please enter the string of symbols (empty string - exit)\n");  // Выводим сообщение на экран
  
    gets(str);
    if (!strcmp(str, "")) break;
 
    for (int i = 0; i < strlen(str); i++)
        if (str[i] >= 'A' && str[i] <= 'Z' ) ++x;
 
    printf("Number of caps is %d\n",  x);  // Выводим сообщение на экран
    x = 0;
  } while (true);
...
dim25rus
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 18
06.10.2012, 09:53  [ТС]     Количество заглавных букв в строке #7
прописанных подключенных библиотек не хватает.
не может определить printf и gets.
какую добавить?

Добавлено через 7 минут
и выдает ошибку W8012 Comparing signed and unsigned values
на строку for (int i = 0; i < strlen(str); i++)

Добавлено через 4 минуты
библиотеку нашел нужную.
осталась ошибка.

Добавлено через 10 минут
при добавлении библиотеки #include <stdio.h> уходят ошибки E2268 Call to undefined function 'printf'.
но появляется [Linker Error] Error: Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\C0W32.OBJ
в ней ничего не понимаю..)
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2012, 10:14     Количество заглавных букв в строке #8
Это какая среда, что библиотек не хватает?
Цитата Сообщение от dim25rus Посмотреть сообщение
и выдает ошибку W8012 Comparing signed and unsigned values
Это, как я понимаю не ошибка, а предупреждение (раз не E, а W). У меня тоже выдаёт. В данном случае, можно игнорировать.
dim25rus
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 18
06.10.2012, 14:01  [ТС]     Количество заглавных букв в строке #9
а с последней ошибкой что сделать то?
пишу в Borland Developer Studio 2006

Добавлено через 2 часа 52 минуты
ап
очень прошу помочь
появляется [Linker Error] Error: Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\C0W32.OBJ
в ней ничего не понимаю..)
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2012, 19:20     Количество заглавных букв в строке #10
Цитата Сообщение от dim25rus Посмотреть сообщение
а с последней ошибкой что сделать то?
Неужели нет более современной IDE? И дальше так хотите мучаться? Поставьте VC 2010 Express и будет и вам счастье, и тем кто подсказывает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 19:26     Количество заглавных букв в строке
Еще ссылки по теме:

C++ Количество заглавных букв в тексте
Преобразование заглавных букв в строчные C++
Количество прописных букв в строке C++
Найти количество заглавных букв в словах C++
C++ Подсчитать количество символов отличных от заглавных латинских букв во всех словах массива

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

Или воспользуйтесь поиском по форуму:
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
06.10.2012, 19:26     Количество заглавных букв в строке #11
Цитата Сообщение от dim25rus Посмотреть сообщение
[Linker Error] Error: Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\C0W32.OBJ
Это значит, что отсутствует функция main.
Попробуйте перестроить проект.
Yandex
Объявления
06.10.2012, 19:26     Количество заглавных букв в строке
Ответ Создать тему
Опции темы

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