프로그래밍

c언어 2차원 문자열 배열 질문 - 해결함 그래도 도움주셔서 ㄳ

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>


#define SIZE_arr 20
#define SIZE_str 10

void New_Start(char arr[SIZE_str][SIZE_arr][SIZE_arr]);
void ARR_OUT(char arr[SIZE_str][SIZE_arr][SIZE_arr]);
void goal_location(char arr[SIZE_str][SIZE_arr][SIZE_arr]);
void first_location(char arr[SIZE_str][SIZE_arr][SIZE_arr]);

int main()
{
    char  Foundation_arr[SIZE_str][SIZE_arr][SIZE_arr];

    New_Start(Foundation_arr);
    first_location(Foundation_arr);
    goal_location(Foundation_arr);

    //ARR_OUT(Foundation_arr);

    return 0;
}

void New_Start(char arr[SIZE_str][SIZE_arr][SIZE_arr])// 초기 배열 설정
{
    char tag[] = "00";
    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
        {
                strcpy(arr[i][s],tag);
        }
    }

    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
            printf("%s", arr[i][s]);
        printf("\n");
    }
}

void ARR_OUT(char arr[SIZE_str][SIZE_arr][SIZE_arr])// 2중 배열 출력
{
    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
            printf("%s", arr[i][s]);
        printf("\n");
    }
}

void goal_location(char arr[SIZE_str][SIZE_arr][SIZE_arr])// 목표물 출력 a to b
{

    srand(time(NULL));
    int x = rand() % SIZE_arr; //0~40
    int y = rand() % SIZE_arr;
    char p[] = "B";

    for (int i = 0; i < strlen(p); i++)
        arr[i][x][y] = p[i];
}
void first_location(char arr[SIZE_str][SIZE_arr][SIZE_arr])
{
    int x = SIZE_arr / 2;
    int y = SIZE_arr / 2;
    char p[] = "A";
    
    for(int i=0;i<strlen(p);i++)
        arr[i][x][y]=p[i];
}

 

 

모든 코딩이구요

 

void New_Start(char arr[SIZE_str][SIZE_arr][SIZE_arr])// 초기 배열 설정
{
    char tag[] = "00";
    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
        {
                strcpy(arr[i][s],tag);
        }
    }

    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
            printf("%s", arr[i][s]);
        printf("\n");
    }
}

 

에서 2차원 문자열에서 이상한 한자 나오는데 무엇이 잘못된 걸까요?

 

 

-----------------------------------------------------------------------------

 

<해결>

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>


#define SIZE_arr 20
#define SIZE_str 100

void New_Start(char arr[SIZE_arr][SIZE_arr][SIZE_str]);
void ARR_OUT(char arr[SIZE_arr][SIZE_arr][SIZE_str]);
void goal_location(char arr[SIZE_arr][SIZE_arr][SIZE_str]);
void first_location(char arr[SIZE_arr][SIZE_arr][SIZE_str]);

int main()
{
    char  Foundation_arr[SIZE_str][SIZE_str][SIZE_str] = { " " };

    New_Start(Foundation_arr);
    first_location(Foundation_arr);
    goal_location(Foundation_arr);

    ARR_OUT(Foundation_arr);

    return 0;
}

void New_Start(char arr[SIZE_arr][SIZE_arr][SIZE_str])// 초기 배열 설정
{
    char tag[] = "00";

    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
        {
            for (int p = 0; p < (strlen(tag)); p++)
            {
                arr[i][s][p] = tag[p];
            }
        }
    }
}

void ARR_OUT(char arr[SIZE_arr][SIZE_arr][SIZE_str])// 2중 배열 출력
{
    for (int i = 0; i < SIZE_arr; i++)
    {
        for (int s = 0; s < SIZE_arr; s++)
            printf("%3s", arr[i][s]);
        printf("\n");
    }
}

void goal_location(char arr[SIZE_arr][SIZE_arr][SIZE_str])// 목표물 출력 a to b
{

    srand(time(NULL));
    int x = rand() % SIZE_arr; //0~40
    int y = rand() % SIZE_arr;
    char tag[] = "BB";

    for (int p = 0; p < strlen(tag); p++)
        arr[x][y][p] = tag[p];
}
void first_location(char arr[SIZE_arr][SIZE_arr][SIZE_str])
{
    int x = SIZE_arr / 2;
    int y = SIZE_arr / 2;
    char tag[] = "AA";
    
    for (int p = 0; p < strlen(tag); p++)
        arr[x][y][p]=tag[p];
}

6개의 댓글

2020.04.05

걍 인덱스 오류같은데

 

void New_Start(char arr[SIZE_str][SIZE_arr][SIZE_arr])

 

인데 루프는 arr 만 두개임

0
2020.04.05
@esibel

스트링카피자나

0
2020.04.05
@일뽕사냥꾼

아 씨는 상관없이 되던가?

 

 

0
2020.04.05
@esibel

void New_Start(char arr[SIZE_arr][SIZE_arr][SIZE_str])이었음ㅋㅋㅋ

 

아 까먹서 필기한거 봤는데

 

[행 크기][열 크기][문자열 길이]인데 [문자열 길이][행 크기][열 크기]이거 이었음 ㄹㅇ

 

ㅈㅅㅈㅅ 제가 빡대가리 이었음ㅋㅋㅋ

0
2020.04.05

스트링카피는 널문자 자동 입력 됨?

0
2020.04.05
@일뽕사냥꾼

void New_Start(char arr[SIZE_arr][SIZE_arr][SIZE_str])이었음ㅋㅋㅋ

 

[행 크기][열 크기][문자열 길이]인데 [문자열 길이][행 크기][열 크기]이거 이었음 ㄹㅇ

 

 

수정하니깐 ㅈㄴ 잘나옴 ㅋㅋㅋ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180480 [컴퓨터] 긱바 보드 쿨러설정 영 별루네 베데엔차 0 23 분 전 12
180479 [잡담] 고사양 컴퓨터 사서 옛날게임하는.eu 오브 0 1 시간 전 66
180478 [견적] 컴맹) 컴퓨터 업글하려는데 다나와에서 사면되지? 2 착한댓글달자 0 1 시간 전 41
180477 [견적] 컴퓨터 사양좀 올릴라는데 5 악플러보면고백박는놈 0 1 시간 전 57
180476 [견적] 그냥 조립식 컴터 살려구 하는데 괜찮은가 봐주세요 13 메카다나카 0 2 시간 전 96
180475 [컴퓨터] 모니터 삿다 10 or5469 0 2 시간 전 75
180474 [컴퓨터] 형님들 컴맹이 윈도우 관련 질문 드립니다 4 우루루옳지 0 6 시간 전 104
180473 [컴퓨터] 님들 랜선 연결 어케해요? 12 플랑크톤상점버거 0 9 시간 전 266
180472 [컴퓨터] 올그떠 보인다길래 삭제함 1 Benetton 0 21 시간 전 178
180471 [잡담] wh xm4 끼고 자다가 오른쪽 박살남ㅠㅠ 8 곰문곰문곰문곰문... 0 22 시간 전 333
180470 [컴퓨터] 컴퓨터 완본체 샀는데 깔아야할 드라이버나 설정 있나요? 10 하이웨이 0 1 일 전 277
180469 [잡담] 좆데온 8천번대보다 7900xtx가 9 전기모기채는신이야 0 1 일 전 344
180468 [컴퓨터] 형님들 견적짠거 호환 문제없는지 확인 부탁드립니다 2 우루루옳지 0 1 일 전 114
180467 [정보] 크러쉬80 - 레이니75를 만든 Wob의 텐키리스 키보드 2 Veigrake 0 1 일 전 271
180466 [잡담] 여기 로봇 청소기도 물어봐도 됨?? 15 년째재수강 0 1 일 전 228
180465 [잡담] 윈도우12 전부 레거시쳐낸다는말이 하드웨어를 말한거구나 5 이거보인다면기분탓임 0 1 일 전 384
180464 [컴퓨터] 갤럭시80 넘나 이쁜것이예요 2 군마 1 1 일 전 470
180463 [모바일] 차량용 맥세이프 충전기 탁상용으로 쓰니 좋다 4 년째군대 0 1 일 전 230
180462 [잡담] 채터링 어캐잡습니까... 7 로우팡맨 0 1 일 전 220
180461 [잡담] 4월에 마우스 큰 게 두 개 나오네 16 GNStout 0 1 일 전 340