문자와 문자열
문자표현방법
- 아스키코드 : 표준적인 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()
리눅스에서는 없어. 이거 쓰지마 안해도 돼
문자열 입출력 라이브러리 함수
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
문자열을 수치로 변환하는 전용 함수
참고자료