#include <stdio.h>
#include <string.h>
#define size 100
char* get_birthday()
{
//생년월일을 문자열로 입력 받기 (정수X)
char* birthday[8] = { 0, };
printf("생년월일을 입력하세요 (yyyymmdd): ");
gets(birthday);
return birthday;
}
char* name_maker(char** name_year, char** name_month, char** name_day)
{
char new_name[size];
char birthday[8] = { 0, };
int i = 0;
char a;
strcpy(birthday, get_birthday());
for (; i < 10; i++)
{
if (birthday[3] == i + 48)
{
strcat(new_name, name_year[i]);
}
};
i = 0;
if (birthday[4] = 48)
{
for (; i < 10; i++)
{
if (birthday[5] == 48 + i)
strcat(new_name, name_month[i]);
}
}
i = 0;
if (birthday[4] = 49)
{
for (; i < 2; i++)
{
if (birthday[5] == 48 + i)
strcat(new_name, name_month[i + 10]);
}
}
i = 0;
for (; i < 10; i++)
{
if (birthday[7] == i + 48)
{
strcat(new_name, name_day[i]);
}
};
return new_name;
};
int main()
{
char* name_year = { "시끄러운 ", "푸른 ","어두운 ","조용한 ", "웅크린 ", "백색 ", "지혜로운 ","용감한 ", "날카로운 ", "욕심 많은 " };
char* name_month[12] = { "늑대", "태양","양", "매", "황소", "불꽃","나무", "달빛", "말", "돼지", "하늘", "바람" };
char* name_day = { "와(과) 함께 춤을", "의 기상", "은(는) 그림자 속에", "의 환생", "의 죽음", "아래에서","을(를) 보라", "이(가) 노래하다", "의 그늘","의 일격" };
printf("\n완성된 이름 : %s\n", name_maker(&name_year, &name_month, &name_day));
return 0;
}
이렇게 하면 계속 Run-Time Check Failure #2 - Stack around the variable 'birthday' was corrupted. 이렇게떠서 검색해보니까 birthday에 크기를 키우라길래
if(birthday[4] = 49) 이새기야 - dc Cpp
49 == birthday[4]같은식으로 rvalue를 좌측에 놓는 습관을 들였을 때 이와같은 오타가 났을때 바로 컴파일에러가 뜨니까 찾기쉬움. 물론 난 보기싫어서 걍 함 - dc Cpp
댓글 적고나니까 문장구성도 좆같네 근데 그냥 알아먹어라 - dc Cpp
저거 바꿔봤는데도 안되요 살려주새요
=쓴곳이 한곳이 아닌데? - dc Cpp
if (birthday[4] == 48) { for (; i < 10; i++) { if (birthday[5] == 48 + i) strcat(new_name, name_month[i]); } } i = 0; if (birthday[4] == 49) { for (; i < 2; i++) { if (birthday[5] == 48 + i) strcat(new_name, name_month[i + 10]); } }이렇게 바꿔도 뜨내요 어떻개하죠?
같은문제뜸? - dc Cpp
넹 같은문제 떠요
어 근데 char* birthday[8]뭐냐ㅋㅋㅋㅋㅋㅋㅋ - dc Cpp
1도 모르갯어요
char*형이 의미하는게 뭐냐 - dc Cpp
주소를 가지고있는데 해당 주소에 들어있는게 char형인거임. 이걸 배열처럼 쓰려면 malloc을 해줘야하고. - dc Cpp
근데 그런 char*형 변수를 8개 가지는 배열을 선언한거임 - dc Cpp
1. char birthday[8]이라고 쓴다 2. char * birthday = (char*)malloc(size)의 형태로 쓴다 - dc Cpp
size는 sizeof(char) * 8 정도겠지 - dc Cpp
무튼 포인터공부 다시해라 - dc Cpp
근데 이딴건 왜 만드는거냐?
구구단 찍는거랑 비슷한거겠지
한번에 다 하려하지 말고 조금씩 테스트하면서 해봐. 나도 초본데 이거 도움 많이됨