본문 바로가기
Ghost의 Linux C Note(노트)/Ghost의 Linux C언어 문자열

문자열은 문자배열?~~~

by dark ghost 2012. 6. 4.
728x90
반응형

문자열.

 

1. 위 소스는 문자열을 출력하는 간단한 소스이다.

char word[30];

2. 배열을 선언 하였는데 30byte 크기의 char 형 배열이다. 문자열은 null을 만날때까지 랜덤으로 계속 출력하게 된다. 그래서 30byte 선언하고 TEST를 출력하고자 배열의 크기를 4byte 만 넣어서 출력을 하게 되면 아래와 같이 이상하게 출력이 된다.

 

3. test 파일을 실행 시킨 화면인데 TEST가 다 출력이 안되고 TES까지 출력되고 나머지는 이상한 한자나 문자가 출력 된것을 볼 수있는데, 이 이유는 그나마 돌면서 null을 만났기에 종료가 된것이고 그 사이에 다른 아스키 코드에 해당하는 코드들을 만나서 출력이 된 것이어서 이렇게 출력 된 것이다. 그럼 정상적으로 출력을 시킬려면 코드에 널을 추가 시켜주면 정상적으로 출력이 된다.

 

4. 위 소스에서 word[4] 자리에 null 을 추가 하였다.

 

5. null을 추가 하여 다시 컴파일 하여 출력 시킨 결과 이다. 물론 null을 추가 시킬때 word[4] = '\0'; 으로 할 수있지만 word[4] = 0; 으로 하는 것이 더 나을 것이다.

 

728x90
반응형

댓글