replace 함수를 사용하랍니다.ㅠ급합니다ㅠ
해가빛
질문 제목 : 기본소스에서 replace함수를 사용하여 출력값이 그대로 똑같이 나오게 하라는데...모르겠어요ㅠ질문 내용 :
#include stdio.h
#include stdlib.h
#define max_list_size 100 // 배열의 최대 크기
typedef int element;
typedef struct
{
int list[max_list_size]; // 배열 정의
int length; // 현재 배열에 저장된 자료들의 개수
} arraylisttype;
// 오류 처리 함수
void error(char *message)
{
fprintf(stderr, %s\n, message);
exit(1);
}
// 리스트 초기화
void init(arraylisttype *l)
{
l - length = 0;
}
// 리스트가 비어 있으면 1을 반환
// 그렇지 않으면 0을 반환
int is_empty(arraylisttype *l)
{
return l - length == 0;
}
// 리스트가 가득 차 있으면 1을 반환
// 그렇지 않으면 0을 반환
int is_full(arraylisttype *l)
{
return l - length == max_list_size;
}
// 리스트 출력
void display(arraylisttype *l)
{
int i;
for(i=0; il-length; i++)
printf(%d\n, l - list[i]);
}
// position : 삽입하고자 하는 위치
// item : 삽입하고자 하는 자료
void add(arraylisttype *l, int position, element item)
{
if(!is_full(l) && (position = 0) && (position = l - length))
{
int i;
for(i=(l - length-1); i=position; i--)
l-list[i+1] = l-list[i];
l-list[position] = item;
l-length++;
}
}
// position : 삭제하고자 하는 위치
// 반환 값 : 삭제되는 자료
element delete(arraylisttype *l, int position)
{
int i;
element item;
if(position 0 || position = l - length)
error(위치 오류);
item = l-list[position];
for(i=position; 1(l - length-1); i++)
l-list[i] = l-list[i+1];
l-length--;
return item;
}
//
main()
{
arraylisttype list1;
arraylisttype *plist;
// listtype을 정적으로 생성하고 listtype을 가리키는
// 포인터를 함수의 매개 변수로 전달한다.
init(&list1);
add(&list1, 0, 10);
add(&list1, 0, 20);
add(&list1, 0, 30);
add(&list1, 0, 40);
add(&list1, 0, 50);
display(&list1);
// listtype을 동적으로 생성하고 listtype을 가리키는
// 포인터를 함수의 매개 변수로 전달한다.
plist = (arraylisttype *)malloc(sizeof(arraylisttype));
init(plist);
add(plist, 0, 10);
add(plist, 0, 30);
add(plist, 0, 20);
add(plist, 0, 10);
display(plist);
free(plist);
}