Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <ctype.h>
- #include <string.h>
- #include <locale.h>
- #include <math.h>
- char* stoupper(char *str)
- {
- int i, k = strlenght(str);
- for (i = 0; i < k; i++)
- {
- if (((str[i] >= 'a') && (str[i] <= 'z')) || ((str[i] >= 'а') && (str[i] <= 'я')))
- str[i] -= 32;
- }
- return str;
- }
- char *enter_str()
- {
- char *s = (char*)malloc(100 * sizeof(char));
- //printf("!");
- s = fgets(s, 100, stdin);
- //scanf("%s", s);
- //printf("!");
- char *c = s;
- int entr = -1;
- while (*c)
- {
- entr++;
- c++;
- }
- s[entr] = '\0';
- //s=(char*)realloc(s,entr*sizeof(char));
- return s;
- }
- char* bintodec(char *bin)
- {
- int i, k, len = strlenght(bin);
- char *str;
- if (bin[len - 1] == '1')
- k = 1;
- else
- k = 0;
- for (i = 1; i < len; i++)
- {
- if (bin[i] == '1')
- {
- k += pow(2, i);
- }
- }
- str = numtos(k);
- return str;
- }
- char numtos(int num)
- {
- int k, lenght = 0, i;
- char* str;
- if (num > 0)
- {
- k = num, lenght = 0;
- num = 0;
- while (k > 0)
- {
- num = num * 10 + k % 10;
- k /= 10;
- lenght++;
- }
- str = (char*)malloc(lenght * sizeof(char));
- for (i = 0; i < lenght; i++)
- {
- str[i] = num % 10 + 48;
- num /= 10;
- }
- }
- else
- {
- k = -num, lenght = 1;
- num = 0;
- while (k > 0)
- {
- num = num * 10 + k % 10;
- k /= 10;
- lenght++;
- }
- str = (char*)malloc(lenght * sizeof(char));
- str[0] = '-';
- for (i = 1; i < lenght; i++)
- {
- str[i] = num % 10 + 48;
- num /= 10;
- }
- }
- return str;
- }
- int stonum(char *str)
- {
- int i, k = strlenght(str), num = 0, c = 0;
- for (i = 0; i < k; i++)
- {
- if ((str[i] >= 48) && (str[i] <= 57) || (str[i] == 45))
- {
- if (str[i] == 45)
- c = 1;
- else
- {
- str[i] -= 48;
- num = num * 10 + str[i];
- }
- }
- }
- if (c == 0)
- return num;
- else
- return -num;
- }
- int strlenght(char* str)
- {
- int lenght = 0;
- char *c = str;
- while (*c)
- {
- c++;
- lenght++;
- }
- return lenght;
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- setlocale(LC_ALL, "Russian");
- char *string;
- int num;
- printf("_____StoUPPER_____\n Функция stoupper преобразует\n содержащиеся в строке буквы\n к верхнему регистру.\n");
- printf("Введите строку: ");
- string = enter_str();
- string = stoupper(string);
- printf("Измененная строка: ");
- printf(string);
- printf("\n__________________\n");
- printf("_____StoNUM_____\n Функция stnum преобразует\n строку цифр str\n в число типа int.\n");
- printf("Введите строку: ");
- string = enter_str();
- num = stonum(string);
- printf("Число: ");
- printf("%d", num);
- printf("\n__________________\n");
- printf("_____BINtoDEC_____\n Функция bintodec преобразует\n двоичную запись целого положительного числа\n в строку, изображающую десятичную запись этого же числа.\n");
- printf("Введите двоичную запись числа: ");
- string = enter_str();
- string = bintodec(string);
- printf("Десятичная запись числа: ");
- printf(string);
- printf("\n__________________\n");
- printf("_____NUMtoS_____\n Функция numtos преобразует\n число типа int\n в его цифровую запись str.\n");
- printf("Введите число: ");
- scanf("%d", &num);
- string = numtos(num);
- printf("Строка: ");
- printf(string);
- printf("\n__________________\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment