Создать функцию, которая принимает указатель на массив и количество элементов - C (СИ)
Формулировка задачи:
Люди! Огромная просьба помочь. Как сделать функцию, которая принимает указатель на массив и количество элементов и возвращает указатель на новый массив? Зарание Спасибо
Решение задачи: «Создать функцию, которая принимает указатель на массив и количество элементов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <clocale>
#include <Windows.h>
char *func(char *str,int kst);
char newstr[150];
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Ââåäèòå Г°Г*çìåð ïðåäëîæåГ*ГЁГї:\n");
int kst;
scanf("%d",&kst);
fflush(stdin);
printf("Ââåäèòå ïðåäëîæåГ*ГЁГҐ:");
char str[150];
gets(str);
puts(func(str,kst));
getchar;
return 0;
}
char *func(char *str,int kst)
{
int i,k=0;
for(i=0;*str!='\0';str++)
{ putchar(*str);
if(*str=='a')
{
newstr[i]='a';
i++;
}
}
return(newstr);
}
Объяснение кода листинга программы
- Создание функции
func, которая принимает указатель на строкуstrи целое числоkst. - Объявление переменной
newstrтипаcharс размером в 150 символов. - Установка кодировки консоли в UTF-8 с помощью
SetConsoleCP(1251);иSetConsoleOutputCP(1251);. - Вывод сообщения с просьбой ввести количество символов для копирования.
- Считывание введенного значения в переменную
kstс помощьюscanf(%d,&kst);. - Очистка буфера ввода с помощью
fflush(stdin);. - Вывод сообщения с просьбой ввести строку для копирования.
- Ввод строки в буфер
str. - Вызов функции
funcс аргументамиstrиkst. - Вывод результата работы функции
funcс помощьюputs(func(str,kst));. - Получение символа ввода с помощью
getchar;. - Завершение работы программы с возвратом значения 0.
- В функции
funcинициализация переменныхiиkв 0. - В цикле перебираются символы строки
str. - Для каждого символа выводится его значение с помощью
putchar(*str);. - Если символ равен 'a', то в массив
newstrзаписывается символ 'a' и значениеiувеличивается на 1. - После выхода из цикла возвращается указатель на массив
newstr. - В конце функции
funcвозвращается значениеnewstr. - В конце программы вызывается функция
funcи выводится результат. - Программа завершается после получения символа ввода.