inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C로 배우는 자료구조 및 여러가지 예제 실습

전화번호부 v1.0 (2)

redefinition; different basic types 오류

1269

fe

작성한 질문수 25

2

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

#define CAPACITY 100
#define BUFFER_SIZE 20 

char* names[CAPACITY];			/*names*/
char* numbers[CAPACITY];		/*phone numbers*/
int n = 0;						/*number of people in phone directory*/

void add();
void find();
void status();
void remove();

int main(void) {
	char command[BUFFER_SIZE];
	while (1) {
		printf("$ ");
		scanf("%s", command);
		if (strcmp(command, "add") == 0)
			add();
		else if (strcmp(command, "find") == 0)
			find();
		else if (strcmp(command, "status") == 0)
			status();
		else if (strcmp(command, "delete") == 0)
			remove();
		else if (strcmp(command, "exit") == 0)
			break;
	}
	return 0;
}

void add()
{
	char buf1[BUFFER_SIZE], buf2[BUFFER_SIZE];
	scanf("%s", buf1);
	scanf("%s", buf2);

	names[n] = _strdup(buf1);
	numbers[n] = _strdup(buf2);
}

void find()
{
	char buf[BUFFER_SIZE];
	scanf("%s", buf);

	int i;
	for (i = 0; i < n; i++) {
		if (strcmp(buf, names[i]) == 0) {
			printf("%s\n", numbers[i]);
			return;
		}
	}
	printf("No person named '%s' exists.\n", buf);
}			

void status() {
	int i;
	for (i = 0; i < n; i++)
		printf("%s  %s\n", names[i], numbers[i]);
	printf("Total %d persons.\n", n);
}

void remove()
{
	char buf[BUFFER_SIZE];
	scanf("%s", buf);

	int i;
	for (i = 0; i < n; i++) {
		if (strcmp(buf, names[i]) == 0) {
			names[i] = names[n - 1]; 
			numbers[i] = numbers[n - 1];
			n--; 
			printf("'%s' was deleted successfully.\n", buf);
			return;
		}
	}
	printf("No person named '%s' exists.\n", buf);
}

c

답변 2

2

오종화

이거 아마 c언어에서 remove()라는 같은 이름의 함수가 있기 때문에 안되는 걸거에요. 저도 안되서 함수명을 remover()로 조금 다르게 하니까 잘 되더라구요

0

fe

전화번호부 v1.0 코드를 그대로 작성하였는데

'remove' : redefinition; different basic types

이라고 remove함수에서 재정의(?)에러가 뜨는데 아무리 봐도모르겠씁니다...

scanf("%d\n") 의미

0

12

1

[문제 해결]전화번호부 v1.0(1) 인덱스 관련하여 질문입니다. 강의를 아무리 돌려봐도 인덱스를 업데이트 안하네요.

0

53

2

music libaray

0

68

1

자료구조 1강, 코드, array --> tmp 할당, 방 4개에서 방 8개로 이사함 ㅅㅅ

0

98

1

자료구조 1강, 코드, array --> tmp 할당, 방 4개에서 방 8개로 이사함 ㅅㅅ

0

98

0

배열대신 포인터 arithmetic으로 써야하는 이유가 있을까요?

0

627

1

search_song함수의 ptr_snode = ptr_snode;의 의미가 궁금합니다

0

407

1

스택 구현

0

367

0

학습 자료 pdf 파일에 관해서

0

844

1

포인터 참조 질문

0

319

1

한글이 깨지는 경우 어떻게 해결하나요?

0

343

0

안녕하세요. c언어 독학중인 학생입니다.

0

554

1

search 함수의 선언 궁금증

0

283

1

두번째 예제 질문있습니다!

0

208

0

메모리 동적 할당에서 메모리공간을 확장시킬 때

1

392

0

realloc함수 쓰지 않는이유

0

262

0

안녕하세요 교수님. free()관련해서 질문 있습니다.

0

238

0

동적으로 할당된 메모리의 life time 관련하여 질문 있습니다.

0

276

0

Node에 대한 코드 안에 링크필드 선언할 때

3

209

0

stack 구현에서 동적할당중 형변환의 유무에 관한 질문

0

292

0

find함수가 제대로 작동을 안합니다

0

272

1

3강 문자열에 등장하는 코드에 관한 질문입니다.

1

301

0

컴파일 실행 중에 오류가 났는데, 구글링으로도 해결방법을 모르겠어서 남깁니다.

0

236

0

21분23초 char **tmp1에서 캐스팅을 해주는 이유는 무엇인가요?

0

345

2