Вопрос задан 07.06.2023 в 07:41. Предмет Информатика. Спрашивает Васильева Мария.

Створити бібліотеку таких функцій: ■ int mystrlen(const char * str); — функція визначає дов-жину

рядка. ■ char * mystrcpy (char * str1, const char * str2); — функція копіює рядок str2 у буфер, що адресується через str1. Функція повертає покажчик на перший рядок str1. ■ char * mystrcat (char * str1, const char * str2); — функція приєднує рядок str2 до рядка str1. Функція повертає покажчик на перший рядок str1. ■ char * mystrchr (char * str, char s); — функція здійснює пошук символа s у рядку str. Функція повертає покаж-чик на перше входження символу в рядок, в іншому випадку — 0. ■ char * mystrstr (char * str1, char * str2); — функція здійснює пошук підрядка str2 у рядку str1. Функція повертає покажчик на перше входження підрядка str2в рядок str1, в іншому випадку — 0.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тумасян Джессика.
Ось бібліотека, що містить вказані функції: #include
#include

// Функція визначає довжину рядка
int mystrlen(const char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}

// Функція копіює рядок str2 у буфер, що адресується через str1
// Повертає покажчик на перший рядок str1
char *mystrcpy(char *str1, const char *str2) {
char *ptr = str1;
while (*str2 != '\0') {
*str1 = *str2;
str1++;
str2++;
}
*str1 = '\0';
return ptr;
}

// Функція приєднує рядок str2 до рядка str1
// Повертає покажчик на перший рядок str1
char *mystrcat(char *str1, const char *str2) {
char *ptr = str1;
while (*str1 != '\0') {
str1++;
}
while (*str2 != '\0') {
*str1 = *str2;
str1++;
str2++;
}
*str1 = '\0';
return ptr;
}

// Функція здійснює пошук символа s у рядку str
// Повертає покажчик на перше входження символу в рядок,
// в іншому випадку — 0.
char *mystrchr(char *str, char s) {
while (*str != '\0') {
if (*str == s) {
return str;
}
str++;
}
if (*str == s) {
return str;
}
return NULL;
}

// Функція здійснює пошук підрядка str2 у рядку str1
// Повертає покажчик на перше входження підрядка str2
// в рядок str1, в іншому випадку — 0.
char *mystrstr(char *str1, char *str2) {
int len1 = mystrlen(str1);
int len2 = mystrlen(str2);
int i, j;
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str1[i + j] != str2[j]) {
break;
}
}
if (j == len2) {
return &str1[i];
}
}
return NULL;
}

Ці функції можна використовувати у програмі таким чином:

#include
#include

int main() {
char str1[100], str2[100];
char s;

// Використання функці
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ось приклад бібліотеки з вказаними функціями:

c
#include <stdlib.h> int mystrlen(const char *str) { int length = 0; while (*str != '\0') { length++; str++; } return length; } char *mystrcpy(char *str1, const char *str2) { char *original = str1; while (*str2 != '\0') { *str1 = *str2; str1++; str2++; } *str1 = '\0'; return original; } char *mystrcat(char *str1, const char *str2) { char *original = str1; while (*str1 != '\0') { str1++; } while (*str2 != '\0') { *str1 = *str2; str1++; str2++; } *str1 = '\0'; return original; } char *mystrchr(char *str, char s) { while (*str != '\0') { if (*str == s) { return str; } str++; } return NULL; } char *mystrstr(char *str1, char *str2) { while (*str1 != '\0') { char *start1 = str1; char *start2 = str2; while (*start1 == *start2 && *start2 != '\0') { start1++; start2++; } if (*start2 == '\0') { return str1; } str1++; } return NULL; }

Це простий приклад реалізації вказаних функцій. Зверніть увагу, що ця реалізація не включає перевірку на NULL аргументів та інші додаткові перевірки помилок. В реальному коді бажано додати такі перевірки для безпеки та надійності програми.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос