문자

- C프로그램의 문자는 아스키 코드를 따른다.


- 아스키 코드는 0~127중의 1바이트로 구성되며 주요 문자를 출력하도록 해준다.

+ 0 = 48, A = 65, a = 97


- 컴퓨터는 내부적으론 다 숫자로 처리한다.


버퍼

- 문자열을 처리할 때 버퍼의 개념이 많이 사용된다.


- 버퍼(buffer)란 임시적으로 특정한 데이터를 저장하기 위한 목적으로 사용한다.


- C 프로그램은 기본적으로 사용자가 의도하지 않아도 자동으로 버퍼를 

  이용해 입출력을 처리한다.


  - scanf로 5를 입력하게되면 버퍼에 5를 입력할때 입력된 엔터도 저장되게된다.

    while((temp = getchat()) != EOF && temp != '\n') {} 구문으로 엔터를 제거해준다.

실습내용


실습결과




문자열

- 문자열은 말 그대로 문자들의 배열이다


- 문자열은 컴퓨터 메모리 구조상에서 마지막에 널(NULL) 값을 포함한다.

+끝을 알기위해 NULL(\0) 한자리가 추가된다.




문자열과 포인터

- 문자열 형태로 포인터를 사용하면 포인터에 특정한 문자열의 주소를 넣게된다.


- 예를들어 char *a = "Hello World"라는 문자열이 입력되면 읽기 전용으로 

  메모리 공간에 넣고 그 위치를 처리한다.


- 위에 방식을 "문자열 리터럴"이라고 한다.


- 문자열리터럴방식은 컴파일러가 알아서 메모리 주소를 결정한다.


  - gets()함수를 이용하게 문자배열의 길이를 제한할 수 없다.

    gets_s()함수를 사용하여 문자배열 크기만큼 입력받고 넘을경우 런타임 오류를 낸다.

실습내용

실습결과


문자열함수

- strlen()은 문자열의 길이를 반환한다.


- strcmp()는 문자열1이 문자열2보다 사전적으로 앞에 있으면 -1, 뒤에 있으면 1을 반환한다.


- strcpy()는 문자열을 복사한다.

  기본적으로 C언어에선 a = b같은 방법으로 복사가 안된다.


- strcat()는 뒤에 있는 문자열을 앞에 있는 문자열에 합친다.


- strstr()은 긴 문자열에서 짧은 문자열을 찾아 그위치를 반환한다.

  짧은 문자열을 찾은 주소 값 자체를 반환하므로 단순히 출력하면

  찾은 이후 모든 문자열이 반환된다.

실습내용

실습결과


+ Recent posts