프로그래밍

 3198, 1/160 회원가입  로그인  
   물먹자
   c언어 배열 질문좀요

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2847 [복사]


#include <stdio.h>
int main(void)
{

        char a[100];
        int i=0;

        printf("문자열 입력:");
        scanf("%s",a);

        while(a[i]!=0)
                i++;

        printf("입력한 문자열 길이:%d \n",i);

        return 0;
}

입력한 문자열 길이 구하는 문제입니다
i값이 늘어나면서 거짓이 되면 while문을 탈출하는 형식인데요
i가 증가하면서 결국에 null값이랑 같아지면서 거짓이 되는형식인데 마지막에 -1해줘야 null값이 포함 안되는거 아닌가요?

  Hit : 4768     Date : 2011/01/09 02:34



    
williamlee NULL 문자가 아스키 코드값으로 0이라서 그런듯...? 2011/01/09  
o엔요o a[i] 값이 NULL이라면 NULL일때의 i++는 실행이 되지 않고 빠져나와서
상관 없는거 아닌가요 ^^?
2011/01/09  
capt_0669 예를 들어 Hello를 타입했다고 하면
a[0] - H
a[1] - e
a[2] - l
a[3] - l
a[4] - o
a[5] - /0 (Null)

이렇게 되므로 만약 a[i]에서 i 가 5가 된다면 0 혹은 /0 즉 Null이므로

while문을 탈출하게 된답니다
Null값은 항상 매~~~~~~~~~~ㄴ 마지막 단어 뒷쪽에 있어서
Good을 쓴다면 단어가 4개이니깐 Null 문자는 5번째가 되겠지요
2011/01/12