수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

배열 첫,끝 구분하기 질문드립니다.

초코향

2023.06.21

안녕하세요. 배열을 이용해서 예외처리를 하려고 하는데 잘안되네요.

바로 질문들어 가겠습니다.

배열을 선언하고 배열에 특정 값들이 쓰여집니다.

이때 처음과 끝에는 항상 시작과 끝을 알리는 문자가 쓰여집니다.(항상 일정한 값)

header와 tail이라고 하겠습니다.

header는 제일 처음 즉, addr[0] 이 겟죠.

하지만 tail은 데이터의 길이에 따라 달라집니다.(데이터의 길이는 일정치 않음)

그래서 배열의 크기가 50이라면

for(int i=0;i50;i++)

배열 전체를 확인 하여 특정 값이 확인되면 check를 하여 데이터의 처음과 끝을 구별하고 싶습니다.

어떻게 보면 엄청 단순한건데 머리가 잘 안돌아 가네요.. 뭔가 체계적으로 소스를 짜고 싶은데 도움을 요청합니다.

* 간혹 header와 tail 사이의 0(NULL)값이 연속해서 들어옴.

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 푸른잎 2023-06-21

    header = addr[0];
    for (int i = 1; i 50; i++)
    {
    if (addr[i] == header)
    {
    break;
    }
    if (i = 50) { //오류 처리 }
    else
    {
    length = i - 1; // header, tail 제외
    }
    }

  • 들빛 2023-06-21

    for문을 1 부터 돌리세요.

  • 솔로 2023-06-21

    알고리즘이 뭔가 거창한거라고 착각하시는거 같은데 밥먹을때 숫가락 들고 밥뜨는 일련의 행위도 알고리즘입니다.

    앞 뒤가 완전해야 하면 앞 뒤가 안전할때까지 50회 검사하시고 50회가 끝낫는데 tail이 여전히 등장하지 않았으면 에러로 처리하시면 됩니다. 제 코드에선 sentry_count가 for를 벗어낫는데도 1인 경우가 되겟죠.

    좀더 그럴싸해 보이는 복잡한 형태는 본격적인 상태기계를 모방하는 일련의 함수군과 상태 표지 모델인데
    다시 쓰지만 이게 더

  • 카제 2023-06-21

    메모리에 값을 쓸때 header와 tail을 이용해서 전송크기를 알 수 있잖아요? 0x7e의 값이 header와 tail의 값인데 이 양쪽의 값이 정상적으로 들어왓을때 데이터를 쓰게하고 그 외의 상황을 예외처리하고 싶은겁니다. 알고리즘을 만들고 싶은데 ... 더 좋은 방법이 없나요?

  • 꽃 2023-06-21

    저게 가장 간단한 체계적인 방법입니다. 아니면 head, tail을 다른값으로 만드시던가 렉서마냥 상태기계 만드시면 됩니다.
    근데 전자는 입력값을 건들여야 하는거니 기각이고, 후자는 제 코드와 하는일은 같으면서 괜히 코드만 늘어나죠

  • 깜찏한그1녀 2023-06-21

    int j 해서 j값을 상승시키고 그 값이 2가 되면 빠져나가게끔? 전 조금더 체계적으로 하고 싶어서 그러거든요..

  • Sweet 2023-06-21

    그럼 두번째 head가 등장하면 빠져나가면 그만이죠
    sentry_count = 0
    for i in 0...50
    if ary[i] == head
    sentry_count += 1
    break if sentry_count == 2
    endif

    do something...
    endfor

  • 다크 2023-06-21

    header와 tail값이 같습니다. 님과 같이 하면 header와 tail의 값이 같기 때문에 i의 값은 0이 되겟지요

  • 옆집언니야 2023-06-21

    for i in 0...50
    break if ary[i] == tail

    do something...
    endfor

번호 제 목 글쓴이 날짜
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
2694503 프로그램 연산 후 바로 종료되는 현상 (6) Judicious 2025-05-11
2694450 while문질문입니다. (1) 허리품 2025-05-11
2694420 C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) 은새 2025-05-11
2694370 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 들찬 2025-05-10
2694339 putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) 미르 2025-05-10
2694316 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) 나빛 2025-05-10
2694285 언어 공부하는 과정 좀 추천해주세요! (1) 아빠몬 2025-05-09
2694258 카운터.. 질문입니다. (4) 하늘빛눈망울 2025-05-09
2694229 단순한 질문이요 (8) 여름 2025-05-09
2694202 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) 미나 2025-05-09
2694145 화면깜빡임을 없애고 싶은데요... (1) 어서와 2025-05-08
2694069 unsigned 질문입니다. 힘차 2025-05-07
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com