본문 바로가기

카테고리 없음

c언어 배열, 0과 \0 구분하기

과제로 나온 문제중에 내가 입력한 배열의 값에 0과 없는 값을 구분하라는 문제가 나왔다.

문제는 내가 입력한 값이

[0 , 1 , 2 , \0]            \0는 입력한 값이 없음을 나타냄

라고 가정했을때

 

if (배열)

printf 배열 값;

else

printf \0;

 

라고 코드를 짜면

계속 [\0,1,2,\0] 

이렇게 나오는 것이다.

 

한참을 고민하다가 조건문을 바꿔보았다.

if (배열 >0){

printf 배열값;

else

printf \0;

 

로 해도 0을 입력하면 null 값이 나온다..

이거때문에 0과 null 의 차이를 한참을 찾아봤지만 내가 원하는 결과를 얻을 수가 없었다!!

 

그러다 깨달은 사실,

배열을 초기값 설정해주지 않고 프린트를 해봤더니 배열의 초기값들이 전부 0으로 나오는 것이었다.아 그러면, 빈 값은 -1로 설정해주면 되는구나!

 

그래서 다시 고친 코드 =  배열의 초기값은 모두 -1로 설정해준다.queue에서 값을 뺄때는 해당위치의 배열의 값도 -1로 설정해준다.

 

그리고 같은 위치의 조건을 아래처럼 변경해주자!

if (배열 >-1){

printf 배열값;

else

printf \0;

 

이렇게 하면 내가 배열의 값에 0을 넣어주면 print를 해줘도 0이 나오고, 아무값도 넣어주지 않으면 \0가 나온다!! 

 

 

++코드는 아직 과제 검사가 안끝나서, 이번학기 끝나고 마크다운 기능까지 배운다음에 올리도록 하겠습니다. 혹시 이해 안가시는 분들이 있으시다면 아래에 댓글로,, 

 

얼렁뚱땅 학점만 채우면서 학교를 다니던 전공생 4학년이 기초부터 차근차근, 직접 해결해가면서 풀어보자는 다짐과 함께 다시 시작하는 코딩공부입니다. 매우매우 얉은 지식으로 어떻게든 해나가려는 모습을 지켜봐 주세요..