Предмет: Информатика, автор: Kukuwka0Ha0DepeBe

С++
Реалізувати власні функції для роботи з рядками не використовуючи
стандартні бібліотеки
1. int mystrlen (const char * str); - функція визначає довжину рядка.
2. char * mystrcpy (char * str1, const char * str2); - функція копіює рядок str2 в
буфер, що адресується через str1. Функція повертає покажчик на перший
рядок str1.
3. char * mystrcat (char * str1, const char * str2); - функція приєднує рядок str2 до
рядка str1. Функція повертає покажчик на перший рядок str1.
4. char * mystrchr (char * str, char s); - функція здійснює пошук символу s в рядку
str. Функція повертає покажчик на перше входження символу в рядок, в
іншому випадку 0.
5. char * mystrstr (char * str1, char * str2); - функція здійснює пошук підрядка str2
в рядку str1. Функція повертає покажчик на перше входження підрядка str2 в
рядок str1, в іншому випадку 0.
6. int mystrcmp (const char * str1, const char * str2); - функція порівнює два рядки,
і, якщо рядки рівні повертає 0, якщо перший рядок більше другий, то повертає
1, інакше -1.
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

Ответ:

Код для реалізації функцій у мові С:

1. int mystrlen(const char* str) {

  int len = 0;

  while (*str++ != '\0') {

      len++;

  }

  return len;

}

2. char* mystrcpy(char* str1, const char* str2) {

  char* res = str1;

  while ((*str1++ = *str2++) != '\0');

  return res;

}

3. char* mystrcat(char *str1, const char *str2) {

   char* res = str1;

   while (*str1) {

       str1++;

   }

   while (*str2) {

       *str1++ = *str2++;

   }

   *str1 = '\0';

   return res;

}

4. char* mystrchr(char* str, char s) {

  while (*str != '\0') {

      if (*str == s) {

          return str;

      }

      str++;

  }

  return NULL;

}

5. char* mystrstr(char* str1, char* str2) {

  char* res = str1;

  while (*res != '\0') {

      char* s1 = res;

      char* s2 = str2;

      while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2) {

          s1++;

          s2++;

      }

      if (*s2 == '\0') {

          return res;

      }

      res++;

  }

  return NULL;

}

6. int mystrcmp(const char* str1, const char* str2) {

  while (*str1 == *str2) {

      if (*str1 == '\0') {

          return 0;

      }

      str1++;

      str2++;

  }

  if (*str1 > *str2) {

      return 1;

  }

  else {

      return -1;

  }

}

7. int StringToNumber(char* str) {

  int res = 0;

  while (*str != '\0') {

      res *= 10;

      res += *str - '0';

      str++;

  }

  return res;

}

8. char* NumberToString(int number) {

  static char str[15]; //мінімальна довжина рядка для INT_MAX + '\0'

  int i = 0;

  if (number < 0) {

      str[i++] = '-';

      number = -number;

  }

  int p = 1;

  while (p <= number) {

      p *= 10;

  }

  p /= 10;

  while (p != 0) {

      str[i++] = number / p + '0';

      number %= p;

      p /= 10;

  }

  str[i] = '\0';

  return str;

}

9. char* Uppercase(char* str) {

  char* res = str;

  while (*str != '\0') {

      if (*str >= 'a' && *str <= 'z') {

          *str -= 32;

      }

      str++;

  }

  return res;

}

10. char* Lowercase(char* str) {

   char* res = str;

   while (*str != '\0') {

       if(*str >= 'A' && *str <= 'Z') {

           *str += 'a' - 'A';

       }

       str++;

   }

   return res;

}

11. char* mystrrev(char* str) {

   int len = mystrlen(str);

   char* res = (char*)malloc(len + 1);

   for (int i = 0; i < len; i++) {

       res[i] = str[len - i - 1];

   }

   res[len] = '\0';

   return res;

}

Код для реалізації функцій у мові C++:

1. int mystrlen(const char* str) {

   int len = 0;

   while (*str++ != '\0') {

       len++;

   }

   return len;

Объяснение:

Похожие вопросы
Предмет: Физика, автор: ivancukvika00
Предмет: Українська мова, автор: marinasaveleva310120