프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180578 [컴퓨터] 암드 신제품 언제 나온다냐 ravvit 0 5 분 전 2
180577 [프로그래밍] 취준생 안드로이드 팀플 주제 머할까요... 1 조강현 0 1 시간 전 26
180576 [컴퓨터] 13900k 시네벤치 R23 돌리면 오류창뜨던거 전력제한 240w 거... 7 ravvit 0 6 시간 전 132
180575 [잡담] 그래픽카드 고주파소리 질문. 4 내일까지 0 6 시간 전 81
180574 [견적] 콤퓨타 하나도 모르는데 견적 좀,, 7 아이마이미마인 0 7 시간 전 85
180573 [컴퓨터] 회사에서 쓸 무소음 or 저소음 기계식 키보드 추천좀.. 11 냥드리퍼 0 7 시간 전 131
180572 [컴퓨터] 컴퓨터 파워 몇w짜리 사는게 좋음? 9 룽니 0 8 시간 전 131
180571 [잡담] 인텔 13,14세대 순정 가이드라인 188W로 잡힘 1 GNStout 2 8 시간 전 155
180570 [컴퓨터] 엔비디아 그래픽카드로 원격 플레이 하려면 컴터 사양 어느정... 1 어중E 0 9 시간 전 103
180569 [잡담] 아직 컴퓨터 1년 더 써야하는데 명조땜에 업글 계획 잡는중 10 손씨네원조비빔밥 0 9 시간 전 92
180568 [견적] 요즘 게이밍 PC 얼마 들어? 7 불타는밀밭 0 11 시간 전 211
180567 [잡담] 키보드 사진 두 개 리밍 2 12 시간 전 145
180566 [컴퓨터] 13년된 컴을 보내주려 합니다. 던파 원활히 돌아가는 견적 8 긍정축재 1 1 일 전 394
180565 [잡담] 스피커 고민 개붕이 이어서.. 18 배프고다배파고 0 1 일 전 242
180564 [잡담] 트랙패드 편하냐?? 5 fhana 0 1 일 전 192
180563 [컴퓨터] 7800x3d로 롤 돌리는 사람 있음? 6 보거 0 1 일 전 309
180562 [컴퓨터] 윈도우 부팅오류 도움!ㅠㅠ 3 qop 0 1 일 전 93
180561 [컴퓨터] 윈10 인터넷 순간 끊김 문제 해결법 좀 5 해물잠봉 0 1 일 전 144
180560 [컴퓨터] 요새 그래픽카드 어디꺼가 좋음? 12 trader2 0 1 일 전 318
180559 [잡담] 님들 보통 마우스 얼마나 오래 씀 ?? 17 말릭스 0 1 일 전 239