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

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

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

Си

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
char* my_concat(char* str1, char* str2)
{
    int str1_len = 0, str2_len = 0;
    
    while(str1[str1_len] != '\0') str1_len++;
    while(str2[str2_len] != '\0') str2_len++;
    
    char* ans = (char*) calloc(str1_len + str2_len + 1, sizeof(char));
    
    sprintf(ans, "%s%s", str1, str2); 
    
    return ans;
}
 
int main(int argc, char** argv)
{
    char* str1 = "Hello ";
    char* str2 = "World!";
    
    char* str3 = my_concat(str1, str2);
    
    printf("%s\n", str3); free(str3);
 
    return EXIT_SUCCESS;
}

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

  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
Похожие ответы