Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //https://vk.com/evgenykravchenko0
- ___ ___ ___
- / /\ ___ / /\ / /\
- / /:/_ /__/\ / /:/_ / /:/_
- / /:/ /\ \ \:\ / /:/ /\ / /:/ /\
- / /:/ /:/_ \ \:\ / /:/_/::\ / /:/ /:/_
- /__/:/ /:/ /\ ___ \__\:\ /__/:/__\/\:\ /__/:/ /:/ /\
- \ \:\/:/ /:/ /__/\ | |:| \ \:\ /~~/:/ \ \:\/:/ /:/
- \ \::/ /:/ \ \:\| |:| \ \:\ /:/ \ \::/ /:/
- \ \:\/:/ \ \:\__|:| \ \:\/:/ \ \:\/:/
- \ \::/ \__\::::/ \ \::/ \ \::/
- \__\/ ~~~~ \__\/ \__\/
- ___
- /__/\ ___ ___
- \ \:\ / /\ / /\
- \ \:\ / /:/ / /:/
- _____\__\:\ /__/::\ /__/::\
- /__/::::::::\ \__\/\:\__ \__\/\:\__
- \ \:\~~\~~\/ \ \:\/\ \ \:\/\
- \ \:\ ~~~ \__\::/ \__\::/
- \ \:\ /__/:/ /__/:/
- \ \:\ \__\/ \__\/
- \__\/
- #include <stdio.h>
- #include <stdlib.h>
- // прототип функции
- char *_strdup(const char* str_in)
- {
- int len = 0, i;
- char *pin = (char *)str_in; // устанавливаем указатель на начало входной строки
- char *str_out = NULL; // указатель на выходную строку, нулевой по умолчанию
- // возвращаем NULL если на входе NULL
- if (pin == NULL)
- return NULL;
- // вычисл€ем длину входной строки
- while (*pin != '\0') // пока не дойдем до символа конца строки
- {
- len ++; // увеличиваем величину длины
- pin ++; // переходим к следующему символу
- }
- // выделяем память под выходную строку
- str_out = (char *)malloc((len + 1) * sizeof(char));
- if (str_out == NULL)
- return NULL;
- // копируем символы, включая символ конца строки
- for (i = 0; i <= len; i ++)
- str_out[i] = str_in[i];
- return str_out;
- }
- int main()
- {
- char src_str[256] = { 0 }, // исходная строка
- *dst_str = NULL; // выходная строка
- printf("Введите строку: ");
- gets(src_str); // вводим строку из консоли
- dst_str = _strdup(src_str); // получаем копию через функцию
- printf("Копия исходного слова: %s\n", dst_str);
- free(dst_str); // освобождаем память
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement