Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> //printf(); scanf();
- #include <cstdlib> //atoi();
- #include <conio.h> //_getch();
- #include <windows.h> //SetConsoleCP()
- #include <ctime> //stime(time(0));
- int Write_int()
- {
- char str[10];
- int value = 0;
- while(true)
- {
- scanf("%s", str);
- // ?: - Это тернарный оператор Одним из существенных отличий обычного оператора if … else это то,
- //что результат операции ?: можно сохранять в переменную.
- value = abs(atoi(str))? abs(atoi(str)) : 0;
- if (value > 0)
- break;
- else
- printf("Введите значение |n| > 0: ");
- }
- return value;
- }
- char* Input_Str(int &Size)
- {
- printf("Ввод строки: ");
- char* cloneStr = NULL;
- char* str = NULL;
- Size = 0;
- while(true)
- {
- int symbol = _getch();
- cloneStr = new char[Size + 1];
- for (int i = 0; i < Size; i++)
- if (str[i] != '\0')
- cloneStr[i] = str[i];
- str = new char[Size + 1];
- for (int i = 0; i < Size; i++)
- str[i] = cloneStr[i];
- delete[] cloneStr;
- if ((symbol >= 'a' && symbol <= 'z') || (symbol >= 'A' && symbol <= 'Z') || (symbol >= '0' && symbol <= '9'))
- {
- str[Size] = symbol;
- Size++;
- }
- if(symbol == 32)
- {
- str[Size] = '_';
- Size++;
- }
- if (symbol == 8 && Size > 0)
- {
- str[Size] = ' ';
- Size--;
- }
- if (symbol == 13)
- {
- str[Size] = '\0';
- break;
- }
- }
- printf("%s\n\n", str);
- return str;
- }
- void Obr_Str(char* str, int Size){
- int ints = 0;
- for(int i = 0; i < Size; i++)
- if(str[i] >= '0' && str[i] <= '9')
- ints++;
- printf("[Обработка]:\nДлина строки - %d\nКол. цифр в строке - %d\n\n", Size, ints);
- }
- void Output_Str(char* str){
- printf("[Вывод строки]:\n%s\n\n", str);
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- char* str = new char[1];
- str[0] = '\0';
- int Size = 0;
- bool RUN = true;
- while(RUN){
- printf("[Меню]:\n");
- printf("*********************\n");
- printf("*1.Ввод строки *\n");
- printf("*2.Обработка строки *\n");
- printf("*3.Вывод строки *\n");
- printf("*4.Выход *\n");
- printf("*********************\nВыбор: ");
- switch(Write_int()){
- case 1:
- {
- str = Input_Str(Size);
- break;
- }
- case 2:
- {
- Obr_Str(str, Size);
- break;
- }
- case 3:
- Output_Str(str);
- break;
- case 4:
- RUN = false;
- break;
- default:
- break;
- }
- }
- delete[] str;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement