Download presentation
Presentation is loading. Please wait.
1
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
2
문자 표현 방법 아스키코드 유니코드 표준적인 8비트 문자 코드 0~127까지의 숫자를 이용하여 문자표현
표준적인 16비트 문자 코드 전세계의 모든 문자를 일관되게 표현하고 다룰 수 있도록 설계
3
문자열 문자열 변수 문자들이 여러 개 모인 것 “A” “Hello World!” “변수 score의 값은 %d입니다“
변경가능한 문자열을 저장할 수 있는 변수 Char형 배열로 저장
5
NULL 문자 문자열의 끝을 나타냄 문자열은 어디서 종료되는지 알수가 없으므로 표시를 해주어야 함 ? ? ?? 끝 s e o
“seou”, “seoul”, “seoul#”, “seoul#%”, .... ??? ? ? ?? 끝 쓰레기값 s e o u l # % ? & $ S E O U L \0 str[0] str[1] str[2] str[3] str[4] str[5] str[6] str[7] str[8] str[9]
10
문자 입출력 라이브러리 입출력 함수 설명 int getchar(void) 하나의 문자를 읽어서 반환한다.
void putchar(int c) 변수 c에 저장된 문자를 출력한다. int getch(void) 하나의 문자를 읽어서 반환한다(버퍼를 사용하지 않음). void putch(int c) 변수 c에 저장된 문자를 출력한다(버퍼를 사용하지 않음). scanf("%c", &c) 하나의 문자를 읽어서 변수 c에 저장한다. printf("%c", c);
12
버퍼링 엔터키를 쳐야만 입력을 받는 이유 프로그램 버퍼 키보드 모든 문자는 일단 버퍼로 간다.
엔터키(\n)가 입력되면 모두 프로그램으로 간다. #include <stdio.h> int main(void) { char ch; ch = getchar(); ... } 프로그램 버퍼 키보드
14
문자열 입출력 라이브러리 함수 입출력 함수 설명 int scanf("%s", s) 문자열을 읽어서 문자배열 s[]에 저장
int printf("%s", s) 배열 s[]에 저장되어 있는 문자열을 출력한다. char *gets(char *s) 한 줄의 문자열을 읽어서 문자 배열 s[]에 저장한다. int puts(const char *s) 배열 s[]에 저장되어 있는 한 줄의 문자열을 출력한다.
16
문자 처리 라이브러리 함수 함수 설명 isalpha(c) c가 영문자인가?(a-z, A-Z) isupper(c)
islower(c) c가 소문자인가?(a-z) isdigit(c) c가 숫자인가?(0-9) isalnum(c) c가 영문자이나 숫자인가?(a-z, A-Z, 0-9) isxdigit(c) c가 16진수의 숫자인가?(0-9, A-F, a-f) isspace(c) c가 공백문자인가?(‘ ’, ‘\n', '\t', '\v', '\r') ispunct(c) c가 구두점 문자인가? isprint(c) C가 출력가능한 문자인가? iscntrl(c) c가 제어 문자인가? isascii(c) c가 아스키 코드인가? toupper(c) c를 대문자로 바꾼다. tolower(c) c를 소문자로 바꾼다. toascii(c) c를 아스키 코드로 바꾼다.
19
문자열 처리 라이브러리 함수 설명 strlen(s) 문자열 s의 길이를 구한다. strcpy(s1, s2)
strcat(s1, s2) s2를 s1의 끝에 붙여넣는다. strcmp(s1, s2) s1과 s2를 비교한다. strncpy(s1, s2, n) s2의 최대 n개의 문자를 s1에 복사한다. strncat(s1, s2, n) s2의 최대 n개의 문자를 s1의 끝에 붙여넣는다. strncmp(s1, s2, n) 최대 n개의 문자까지 s1과 s2를 비교한다. strchr(s, c) 문자열 s안에서 문자 c를 찾는다. strstr(s1, s2) 문자열 s1에서 문자열 s2를 찾는다.
21
int strcmp( const char *s1, const char *s2 );
반환값 s1과 s2의 관계 <0 s1이 s2보다 앞에 있다. s1이 s2와 같다. >0 s1이 s2보다 뒤에 있다.
24
strtok( ) 함수 만약 분리자가 ‘ ‘일 경우, 토큰을 얻으려면 다음과 같이 호출한다. 형식
char *strtok( char *s, const char *delimit ); 설명 strtok 함수는 문자열 s을 토큰으로 분리한다. 만약 분리자가 ‘ ‘일 경우, 토큰을 얻으려면 다음과 같이 호출한다. t1 = strtok(s, " "); // 첫 번째 토큰 t2 = strtok(NULL, " "); // 두 번째 토큰 t3 = strtok(NULL, " "); // 세 번째 토큰 t4 = strtok(NULL, " "); // 네 번째 토큰
26
sprintf( ) 와 sscanf( ) 앞에 붙은 s는 string 을 의미한다. v
sscanf(str, “%f”, &v); 36.5 3 6 . 5 \0 src[0] src[1] src[2] src[3] src[4] src[5] v 수치 문자열 sprintf(str, “%f”, v);
29
문자열을 수치로 변환하는 전용함수 함수 설명 int atoi( const char *str );
str을 int형으로 변환한다. long atoi( const char *str ); str을 long형으로 변환한다. double atof( const char *str ); str을 double형으로 변환한다.
31
문자열의 배열
32
단어 카운팅 프로그램
33
한영사전 구현
34
Q/A
Similar presentations