Search

'C언어 Null 문자 값 구하기'에 해당되는 글 2건

  1. 2018.05.03 【 C 언어 】 #38 구조체 이해하기2 (구조체 배열 포함)
  2. 2018.05.03 【 C 언어 】 #37 NULL 널 문자 이해하기
반응형

【 C 언어 】 #38 구조체 이해하기



 구조체는 구조적인 프로그래밍을 작성하기 위해 사용되며, 배열과 비슷한 구조를 띄고 있다. 배열과 다른 점은,  배열은 동일한 데이터형에 대하여 여러개를 정의 하는 것이고, 구조체는 서로 다른 데이터형을 하나의 묶음으로 처리(관리)하기 위해 사용되는 차이점이 있다. 또한 C++에서의 클래스(class)라는 개념으로 바뀌어 사용된다. 


▶ 문제  : 국,영,수 3과목 성적 값의 평균을 구하는 문제를 구조체를 사용하여 작성하라.



▶ 포인트 


- 구조체는 같은 유형의 데이터가 아니더라도 하나의 묶음(구조)으로 관리 할 수 있어 , 좀 더 편하게 프로그래밍을 짤 수 있게 해준다. 

- 묶어야 할 요소들을 "struct XXX" {  ...   };  형태로 선언 한다. 

- 메인 함수내에서 변수명과 함께 선언하게 되면(struct XXX YY; )  , 

  YY.kor = 100;   형태로 구조체 내에 있는 요소들을 활용 할 수 있다.



▶ 프로그램 : 




▶ 실행 결과 :


▶ 보충설명 :


- 구조체 이름은 서로 다를 수 있는 개체들을 묶은 템플릿의 이름에 해당 된다. 

  (주의 : 구조체 선언의 끝( '}' )에 ';' 세미콜론을 넣어야 한다.


- 구조체를 사용하기 위해서는 변수명을 하나 정하여 구조체를 선언해야 사용할 수 있다.   ( struct Average SCORE; )   주의 : 반드시 선언부 끝에 세미 콜론이 들어감.


- 구조체 사용은 SCORE.kor 형태로 ,  선언명(SCORE) 과 사용하고자 하는 요소값을 ' . ' 로 연결하여 사용한다.  

 (예, 국어 점수 kor에 100점 입력하기 : SCORE.kor = 100; )


 - 구조체를 배열 형태로 사용할 수 도 있다. 

 (예,  struct Average KOR[10];     : 국어 점수 10개를 배열 형태로 사용할  수 있다.  KOR[0] , KOR[1] , ....  KOR[9]   )

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 응용 연습 문제 1 :   위 프로그램을 기본으로 국어 점수 3개를 구조체 배열을 사용하여 평균값을 구하여라. 



▶ 프로그램1 :  (아래 코딩에서 빠진 영어, 수학 성적도 추가 해 넣으면 된다.)




▶ 실행 결과1 :




▶ 소스코드 다운로드 :  


38 구조체 이해하기.cpp


38 구조체 이해하기2.cpp






반응형

【 C 언어 】 #37 NULL 널 문자 이해하기

Language/C & C++ 2018. 5. 3. 11:03 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #37 NULL 문자 이해하기



 문자열 길이를 구하는 문제를 통해 NULL 문자에 대해 이해 할 수 있다.  


▶ 문제  : 문자열 길이(예, abcdefg: 길이 7) 를 구하는 코드를 작성하라. 



▶ 포인트 


- 문자열의 끝은 항상 NULL('\0')문자 로 종료된다.

NULL 문자는 아스키 코드 값  '0' 이다

- 문자열 길이를 구하는 함수를 따로 작성하여 코딩한다.

- 문자형 포인터 변수(*pstr)를 사용하여 코딩한다.

- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다. 



▶ 프로그램 : 


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


▶ 실행 결과 :


▶ 보충설명 :


- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다.  따라서 pstr은 번지(주소) 라는 것을 이해 해야 한다.

- pstr은 문자열의 선두 번지를 가리키고 있기 때문에, pstr의 번지가 1씩 증가(pstr++)함에  따라 *pstr의 값은 첫 번째 값 a 부터...  b, c, d, e, f, g, \0  처럼 된다.

- while문에서 NULL문자('\0') 의 아스키 값은 '0' 이기 때문에 문자열 끝을 알리는 NULL 문자를 만나면 while 문을 빠져 나오게 된다.

- pstr++;   은 pstr의 번지를 1만큼 증가 시킨다(pstr은 포인터 변수 이기 때문)

- len++;   은 문자열 길이 값을 1만큼 증가 시킨다


 문자열 'abcdefg' 가 메모리에 저장된 모습을 그림으로 그려 보면 아래와 같다.

문자열의 첫 번째 a가 저장된 번지를 '1000'번지라고 가정 해 보자.


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


37 NULL 넌 문자 이해하기-코드.cpp






반응형