Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <ctype.h>
  5. #include <string.h>
  6. #include <locale.h>
  7. #include <math.h>
  8.  
  9. char* stoupper(char *str)
  10. {
  11.     int i, k = strlenght(str);
  12.     for (i = 0; i < k; i++)
  13.     {
  14.         if (((str[i] >= 'a') && (str[i] <= 'z')) || ((str[i] >= 'а') && (str[i] <= 'я')))
  15.             str[i] -= 32;
  16.     }
  17.     return str;
  18. }
  19. char *enter_str()
  20. {
  21.     char *s = (char*)malloc(100 * sizeof(char));
  22.     //printf("!");
  23.     s = fgets(s, 100, stdin);
  24.     //scanf("%s", s);
  25.     //printf("!");
  26.     char *c = s;
  27.     int entr = -1;
  28.     while (*c)
  29.     {
  30.         entr++;
  31.         c++;
  32.     }
  33.     s[entr] = '\0';
  34.     //s=(char*)realloc(s,entr*sizeof(char));
  35.     return s;
  36. }
  37.  
  38. char* bintodec(char *bin)
  39. {
  40.     int i, k, len = strlenght(bin);
  41.     char *str;
  42.     if (bin[len - 1] == '1')
  43.         k = 1;
  44.     else
  45.         k = 0;
  46.     for (i = 1; i < len; i++)
  47.     {
  48.         if (bin[i] == '1')
  49.         {
  50.             k += pow(2, i);
  51.         }
  52.     }
  53.     str = numtos(k);
  54.     return str;
  55. }
  56.  
  57. char numtos(int num)
  58. {
  59.     int k, lenght = 0, i;
  60.     char* str;
  61.     if (num > 0)
  62.     {
  63.         k = num, lenght = 0;
  64.         num = 0;
  65.         while (k > 0)
  66.         {
  67.             num = num * 10 + k % 10;
  68.             k /= 10;
  69.             lenght++;
  70.         }
  71.         str = (char*)malloc(lenght * sizeof(char));
  72.         for (i = 0; i < lenght; i++)
  73.         {
  74.             str[i] = num % 10 + 48;
  75.             num /= 10;
  76.         }
  77.     }
  78.     else
  79.     {
  80.         k = -num, lenght = 1;
  81.         num = 0;
  82.         while (k > 0)
  83.         {
  84.             num = num * 10 + k % 10;
  85.             k /= 10;
  86.             lenght++;
  87.         }
  88.         str = (char*)malloc(lenght * sizeof(char));
  89.         str[0] = '-';
  90.         for (i = 1; i < lenght; i++)
  91.         {
  92.             str[i] = num % 10 + 48;
  93.             num /= 10;
  94.         }
  95.     }
  96.     return str;
  97. }
  98. int stonum(char *str)
  99. {
  100.     int i, k = strlenght(str), num = 0, c = 0;
  101.     for (i = 0; i < k; i++)
  102.     {
  103.         if ((str[i] >= 48) && (str[i] <= 57) || (str[i] == 45))
  104.         {
  105.             if (str[i] == 45)
  106.                 c = 1;
  107.             else
  108.             {
  109.                 str[i] -= 48;
  110.                 num = num * 10 + str[i];
  111.             }
  112.         }
  113.     }
  114.     if (c == 0)
  115.         return num;
  116.     else
  117.         return -num;
  118. }
  119. int strlenght(char* str)
  120. {
  121.     int lenght = 0;
  122.     char *c = str;
  123.     while (*c)
  124.     {
  125.         c++;
  126.         lenght++;
  127.     }
  128.     return lenght;
  129. }
  130.  
  131.  
  132. int main()
  133. {
  134.     SetConsoleCP(1251);
  135.     SetConsoleOutputCP(1251);
  136.     setlocale(LC_ALL, "Russian");
  137.     char *string;
  138.     int num;
  139.     printf("_____StoUPPER_____\n  Функция stoupper преобразует\n содержащиеся в строке буквы\n к верхнему регистру.\n");
  140.     printf("Введите строку: ");
  141.     string = enter_str();
  142.     string = stoupper(string);
  143.     printf("Измененная строка: ");
  144.     printf(string);
  145.     printf("\n__________________\n");
  146.     printf("_____StoNUM_____\n  Функция stnum преобразует\n строку цифр str\n в число типа int.\n");
  147.     printf("Введите строку: ");
  148.     string = enter_str();
  149.     num = stonum(string);
  150.     printf("Число: ");
  151.     printf("%d", num);
  152.     printf("\n__________________\n");
  153.     printf("_____BINtoDEC_____\n  Функция bintodec преобразует\n двоичную запись целого положительного числа\n в строку, изображающую десятичную запись этого же числа.\n");
  154.     printf("Введите двоичную запись числа: ");
  155.     string = enter_str();
  156.     string = bintodec(string);
  157.     printf("Десятичная запись числа: ");
  158.     printf(string);
  159.     printf("\n__________________\n");
  160.     printf("_____NUMtoS_____\n  Функция numtos преобразует\n число типа int\n в его цифровую запись str.\n");
  161.     printf("Введите число: ");
  162.     scanf("%d", &num);
  163.     string = numtos(num);
  164.     printf("Строка: ");
  165.     printf(string);
  166.     printf("\n__________________\n");
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement