В функции определить количество символов в каждом указателе - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Си

Создаем два указателя со строками. Необходимо создать функцию, в функцию передаем два указателя со строками. Необходимо в функции определить количество символов в каждом указателе, выделить память для третьего указателя и сохранить строки с двух указателей. переданных в массив в одном указателе.

Решение задачи: «В функции определить количество символов в каждом указателе»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char* my_concat(char* str1, char* str2)
  5. {
  6.     int str1_len = 0, str2_len = 0;
  7.    
  8.     while(str1[str1_len] != '\0') str1_len++;
  9.     while(str2[str2_len] != '\0') str2_len++;
  10.    
  11.     char* ans = (char*) calloc(str1_len + str2_len + 1, sizeof(char));
  12.    
  13.     sprintf(ans, "%s%s", str1, str2);
  14.    
  15.     return ans;
  16. }
  17.  
  18. int main(int argc, char** argv)
  19. {
  20.     char* str1 = "Hello ";
  21.     char* str2 = "World!";
  22.    
  23.     char* str3 = my_concat(str1, str2);
  24.    
  25.     printf("%s\n", str3); free(str3);
  26.  
  27.     return EXIT_SUCCESS;
  28. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с памятью и вводом-выводом
  2. Определение функции my_concat, которая принимает два указателя на строки и возвращает результат их конкатенации
  3. Инициализация переменных str1_len и str2_len в функции my_concat равными нулю
  4. Проход по каждому символу строки str1 и str2 с помощью цикла while до тех пор, пока не встретится символ конца строки '\0'
  5. Увеличение счетчика str1_len и str2_len на единицу при каждой итерации цикла
  6. Выделение памяти под новую строку ans с помощью функции calloc
  7. Использование функции sprintf для заполнения выделенной памяти содержимым строк str1 и str2
  8. Возвращение полученной строки из функции my_concat
  9. Инициализация строк str1 и str2 в функции main
  10. Вызов функции my_concat с передачей строк str1 и str2 в качестве аргументов
  11. Вывод результата вызова функции my_concat на экран с помощью функции printf
  12. Освобождение памяти, выделенной под результат вызова функции my_concat, с помощью функции free
  13. Возвращение успешного статуса программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы