С клавиатуры вводится текст, ввод прекращается при нажатии клавиши Enter

Условие задачи: С  клавиатуры  вводится  текст  из  прописных  и  строчных  латинских  букв  и цифр.  Ввод  прекращается  при  нажатии клавиши Enter. Произвести следующие операции:

1) напечатать только цифры, входящие в этот текст;
2) найти процентное содержание цифр в исходном тексте.
Примечание:  Все  операции  над  строками  выполняются  отдельными функциями в том порядке, в котором они описаны в задании.
Листинг (исходник) программы:


				#include <iostream>
		#include <locale>
		#include <conio.h>
		#include <cctype>
		#include <string>
		using namespace std;
		
			
		void ShowProcents(const char* Stroka);
		void ShowDigit(char* Stroka);
		
			
		int main()
		{
		    setlocale(LC_ALL,"Russian");
		    const int n =1000;
		    char Str[n];
		
			
		    cout<<"Введите текст: "; cin.getline(Str,n,\'\\n\');
		
			
		    ShowDigit(Str); // Выводим цифры которые имеются в тексте
		    ShowProcents(Str); // Выводим значение цифр в тексте в процентах
		    _getch();
		    return 0;
		}
		
			
		void ShowDigit(char* Stroka)
		{
		    int i(0);
		    bool Numbers[10] = {false};
		    for(i = 0; Stroka[i]; i++)
		    {
		        int numb;
		        char tmp[2] = " ";
		        tmp[0] = Stroka[i];
		        if( isdigit(tmp[0]))
		        {
		            int numb = atoi(tmp);
		            Numbers[numb] = true; // Помечаем истиной, что число есть в тексте.
		        }
		    }
		
			
		    cout<<"В тексте присутствуют цифры: ";
		    for(int i(0); i<10; i++)
		        if(Numbers[i] != false)
		            cout<<i<<\' \';//Выводим цифры которые присутствуют в тексте
		    cout<<endl;
		}
		
			
		void ShowProcents(const char* Stroka)
		{
		    int i(0);
		    double numb(0);
		
			
		    for(i = 0; Stroka[i]; i++)
		        if( isdigit(Stroka[i]) )
		            numb++;
		
			
		    numb = (1 * 100) / i;
		    cout.precision(2);
		    cout<< "Цифры в тексте составляют: " << numb << \'%\' << endl;
		}

 

[свернуть]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *