프로그래밍 프로젝트 (문자)

문자와 문자열

문자표현방법

  • 아스키코드 : 표준적인 8비트 문자코드
  • 유니코드 : 표준적인 16비트 문자코드

문자 변수와 상수

ex) char code1 = 'A'; char code2 = 65;

출력해보면 똑같다 %c와 %d로 출력

아스키 코드 출력 - 32부터 128까지

문자열 표현 방법

C에서는 구분됌.

문자열 처리 -> “” 쌍 다옴표 사용 한 개의 값 처리 -> 홀 따옴표 사용

NULL 문자

문자열의 끝을 나타낸다. 문자열은 어디서 종료되는지 알 수가 없으므로 표시를 해주어야 한다.

문자 배열의 초기화

  • char str[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

  • char str[6] = “Hello”l

  • char str[] = “C Bible”;

문자 배열에 문자를 저장

strcpy() -> 사용하여 문자열을 문자 배열에 복사

예제2

문자열 역순 예제 과거 시험 문제. 50프로는 못 풀었다. 예제 코드 적기

문자열 길이 계산 예제

문자 입출력 라이브러리

  • int getchar(void) : 하나의 문자를 읽어서 반환한다.
  • void putchar(int c) 변수 c에 저장된 문자를 출력한다.
  • int getch(void) : 하나의 문자를 읽어서 반환한다. ( 버퍼를 사용하지 않음)
  • void putch(int c) : 변수 c에 저장된 문자를 출력한다.(버퍼를 사용하지 않음)
  • scanf / printf

버퍼? 컴퓨터 장비에는 다 버퍼가 들어가 있어 CPU와 메모리 사이에는, 중간 단계 메모리들?이 구성, 그런 주변 장치에 버몽땅 다 버퍼가 들어가 있다. 하드디스크, 이더넷, 비디오카드 다 버퍼가 들어가 있다. 버퍼는 그냥 추가적인 메모리를 의미한다.

버퍼에서 하는 것: 키보드에서 타이핑을 하면, 스탠다드 인풋을 기다릴 떄, 막 쳐서 엔터를 칠 때. 그 때 사용되는게 키보드 버퍼. 그 키보드 버퍼랑 맵핑이 되어있는 메모리 주소가 있다. 그 메모리 주소에서 여러분들은 읽어온다. 모든 문자는 일단 버퍼로 가고, 엔터키가 입력되면 모두 프로그램으로 간다.

getchar(), putchar()

getch(), putch()

리눅스에서는 없어. 이거 쓰지마 안해도 돼

문자열 입출력 라이브러리 함수

image

getchar 여러번 하면 문자열 호출할 수 있다.

gets()와 puts()

gets() 엔터치기 전까지 한 줄의 라인을 입력 받는다.

puts() -> str이 가리키는 문자열열을 받아서 화면에 출력

문자 처리 라이브러리 함수

예제

EOF ? -> getchar, fgetc 파일의 끝에 도달 하는 경우 반환

문자열 처리 라이브러리

  • strlen(s) : 문자열 s의 길이를 구한다
  • strcpy(s1, s2) : s2를 s1에 복사한다.
  • strcat(s1, s2) : s2를 s1의 끝에 붙여넣는다.
  • strcmp(s1, s2) : s1과 s2를 비교한다
  • strncpy(s1, s2, n): s2의 최대 n개의 문자를 s1에 복사한다.
  • strncat(s1, s2 ,n)
  • strncmp(s1, s2, n)
  • strchr(s,c) : 문자열 s안에서 문자 c를 찾는다.
  • strstr(s1,s2) : 문자열 s1에서 문자열 s2를 찾는다.

문자열 비교

문자 검색, 문자열 검색

strstr

문자열 토큰 분리

strtok

문자열을 수치로 변환하는 전용 함수


참고자료

프로그래밍 프로젝트

0%