Advertisement
EvgeniiKraaaaaaaav

5.1

Dec 26th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.42 KB | None | 0 0
  1. //https://vk.com/evgenykravchenko0
  2.  
  3.                 ___                                        ___                   ___    
  4.                /  /\                  ___                 /  /\                 /  /\    
  5.               /  /:/_                /__/\               /  /:/_               /  /:/_  
  6.              /  /:/ /\               \  \:\             /  /:/ /\             /  /:/ /\  
  7.             /  /:/ /:/_               \  \:\           /  /:/_/::\           /  /:/ /:/_
  8.            /__/:/ /:/ /\          ___  \__\:\         /__/:/__\/\:\         /__/:/ /:/ /\
  9.            \  \:\/:/ /:/         /__/\ |  |:|         \  \:\ /~~/:/         \  \:\/:/ /:/
  10.             \  \::/ /:/          \  \:\|  |:|          \  \:\  /:/           \  \::/ /:/
  11.              \  \:\/:/            \  \:\__|:|           \  \:\/:/             \  \:\/:/  
  12.               \  \::/              \__\::::/             \  \::/               \  \::/  
  13.                \__\/                   ~~~~               \__\/                 \__\/    
  14.                             ___                                            
  15.                            /__/\                ___                 ___    
  16.                            \  \:\              /  /\               /  /\    
  17.                             \  \:\            /  /:/              /  /:/    
  18.                         _____\__\:\          /__/::\             /__/::\    
  19.                        /__/::::::::\         \__\/\:\__          \__\/\:\__
  20.                        \  \:\~~\~~\/            \  \:\/\            \  \:\/\
  21.                         \  \:\  ~~~              \__\::/             \__\::/
  22.                          \  \:\                  /__/:/              /__/:/
  23.                           \  \:\                 \__\/               \__\/  
  24.                            \__\/                      
  25. #include <stdio.h>
  26. #include <stdlib.h>
  27.  
  28. // прототип функции
  29. char *_strdup(const char* str_in)
  30. {
  31.   int len = 0, i;
  32.   char *pin = (char *)str_in;   // устанавливаем указатель на начало входной строки
  33.   char *str_out = NULL; // указатель на выходную строку, нулевой по умолчанию
  34.    
  35.     // возвращаем NULL если на входе NULL
  36.   if (pin == NULL)
  37.     return NULL;
  38.        
  39.     // вычисл€ем длину входной строки
  40.   while (*pin != '\0')  // пока не дойдем до символа конца строки
  41.   {
  42.     len ++; // увеличиваем величину длины
  43.     pin ++; // переходим к следующему символу
  44.   }    
  45.        
  46.     // выделяем память под выходную строку
  47.   str_out = (char *)malloc((len + 1) * sizeof(char));
  48.   if (str_out == NULL)
  49.     return NULL;
  50.        
  51.     // копируем символы, включая символ конца строки
  52.   for (i = 0; i <= len; i ++)
  53.     str_out[i] = str_in[i];
  54.        
  55.   return str_out;
  56. }
  57.  
  58. int main()
  59. {
  60.    
  61.   char src_str[256] = { 0 },    // исходная строка
  62.     *dst_str = NULL;        // выходная строка
  63.    
  64.   printf("Введите строку: ");
  65.   gets(src_str);                    // вводим строку из консоли
  66.   dst_str = _strdup(src_str);       // получаем копию через функцию
  67.   printf("Копия исходного слова: %s\n", dst_str);   
  68.    
  69.   free(dst_str);    // освобождаем память
  70.    
  71.   return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement