• Предмет: Информатика
  • Автор: Kukuwka0Ha0DepeBe
  • Вопрос задан 4 месяца назад

С++
Реалізувати власні функції для роботи з рядками не використовуючи
стандартні бібліотеки
7. int StringToNumber (char * str); - функція конвертує рядок в число і повертає
це число.
8. char* NumberToString (int number); - функція конвертує число в рядок і
повертає покажчик на цей рядок.
9. char * Uppercase (char * str1); - функція перетворює рядок у верхній регістр.
10.char * Lowercase (char * str1); - функція перетворює рядок у нижній регістр.
11.char * mystrrev (char * str); - функція реверсує рядок і повертає покажчик на
новий рядок.

Ответы

Ответ дал: Anigoo1
0

Ответ:

=-| c++ |-=

#include <iostream>

using namespace std;

// Функція конвертує рядок в число і повертає це число.

int StringToNumber(char* str) {

   int num = 0, sign = 1;

   // Ігнорувати пробіли.

   while (*str == ' ') {

       str++;

   }

   // Визначити знак числа.

   if (*str == '-') {

       sign = -1;

       str++;

   } else if (*str == '+') {

       str++;

   }

   // Конвертувати рядок в число.

   while (*str >= '0' && *str <= '9') {

       num = num * 10 + (*str - '0');

       str++;

   }

   return num * sign;

}

// Функція конвертує число в рядок і повертає покажчик на цей рядок.

char* NumberToString(int number) {

   char* str = new char[20];

   int i = 0, j = 0;

   // Визначити знак числа.

   if (number < 0) {

       str[j++] = '-';

       number = -number;

   }

   // Конвертувати число в рядок у зворотному порядку.

   do {

       str[i++] = (number % 10) + '0';

       number /= 10;

   } while (number);

   // Реверсувати рядок.

   str[i] = '\0';

   j = i - 1;

   i = 0;

   while (i < j) {

       char temp = str[i];

       str[i] = str[j];

       str[j] = temp;

       i++;

       j--;

   }

   return str;

}

// Функція перетворює рядок у верхній регістр.

char* Uppercase(char* str) {

   int i = 0;

   // Перетворити кожен символ у верхній регістр.

   while (str[i]) {

       if (str[i] >= 'a' && str[i] <= 'z') {

           str[i] = str[i] - 'a' + 'A';

       }

       i++;

   }

   return str;

}

// Функція перетворює рядок у нижній регістр.

char* Lowercase(char* str) {

   int i = 0;

   // Перетворити кожен символ у нижній регістр.

   while (str[i]) {

       if (str[i] >= 'A' && str[i] <= 'Z') {

           str[i] = str[i] - 'A' + 'a';

       }

       i++;

   }

   return str;

}

// Функція реверсує рядок і повертає покажчик на новий рядок.

char* mystrrev(char* str) {

   int i = 0, j = 0;

   // Знайти кінець рядка.

   while (str[j]) {

       j++;

   }

   // Реверсувати рядок.

   j--;

   while (i < j) {

       char temp = str[i];

       str[i] = str[j];

       str[j] = temp;

       i++;

       j--;

   }

   return str;

}

int main() {

   char str1[20] = "12345";

   char str2[20] = "-67890";

   char str3[20] = "Hello World!";

   int num1 = StringToNumber(str1);

   int num2 = StringToNumber(str2);

   cout << "num1 = " << num1 << endl;

   cout << "num2 = " << num2 << endl;

   char* str4 = NumberToString(num1);

   char* str5 = NumberToString(num2);

   cout << "str4 = " << str4 << endl;

   cout << "str5 = " << str5 << endl;

   char* str6 = Uppercase(str3);

   cout << "str6 Uppercase = " << str6 << endl;

   char* str7 = Lowercase(str3);

   cout << "str7 Lowercase = " << str7 << endl;

   char* str8 = mystrrev(str3);

   cout << "str8 mystrrev = " << str8 << endl;

   return 0;

}

=-| END |-=

Объяснение:

Вас заинтересует